当前位置: 首页 > news >正文

快速网站排名优化云南建个网站哪家便宜

快速网站排名优化,云南建个网站哪家便宜,做ppt网站有哪些内容,wordpress主题制作调用插件这段代码通过提取、查询、替换DOI,生成参考文献列表来处理Word文档,可按功能模块划分: 导入模块 import re from docx import Document from docx.oxml.ns import qn from habanero import Crossref导入正则表达式模块re用于文本模式匹配&a…

这段代码通过提取、查询、替换DOI,生成参考文献列表来处理Word文档,可按功能模块划分:

  1. 导入模块
import re
from docx import Document
from docx.oxml.ns import qn
from habanero import Crossref

导入正则表达式模块re用于文本模式匹配,python - docx库中的Document类操作Word文档,qn函数处理命名空间(代码中未实际使用),以及habanero库的Crossref类,用于通过DOI查询参考文献信息。
2. 提取DOI函数

def extract_dois(text):doi_pattern = r'(10\.\d{4,9}/[-._;()/:A-Z0-9]+)'return re.findall(doi_pattern, text, re.IGNORECASE)

定义extract_dois函数,接收文本参数text,使用正则表达式doi_pattern匹配DOI格式,通过re.findall函数提取所有符合格式的DOI字符串,返回包含这些DOI的列表,忽略大小写。
3. 获取参考文献函数

def get_reference(doi):cr = Crossref()try:result = cr.works(ids=doi)if'message' in result:message = result['message']# 提取作者信息authors = []if 'author' in message:for author in message['author']:if 'family' in author and 'given' in author:last_name = author['family']first_initial = author['given'][0] if author['given'] else ''authors.append(f"{last_name}, {first_initial}.")author_str = ', '.join(authors)# 提取年份、标题等其他信息year = message['issued']['date - parts'][0][0] if 'issued' in message and 'date - parts' in message['issued'] and message['issued']['date - parts'] else 'n.d.'title = message['title'][0] if 'title' in message and message['title'] else 'No title'journal = message['container - title'][0] if 'container - title' in message and message['container - title'] else 'No journal'volume = message['volume'] if 'volume' in message else 'No volume'issue = message['issue'] if 'issue' in message else 'No issue'pages = message['page'] if 'page' in message else 'No pages'reference = f"{author_str} ({year}). {title}. {journal}, {volume}({issue}), {pages}. doi:{doi}"return referenceelse:return Noneexcept Exception:return None

get_reference函数接收DOI参数doi,创建Crossref实例cr查询该DOI对应的参考文献信息。尝试获取查询结果,若结果中存在message字段,则从中提取作者、年份、标题、期刊、卷号、期号、页码等信息,格式化为APA格式参考文献字符串并返回;若查询失败或出现异常,返回None
4. 主处理函数

def convert_dois_in_word(input_file, output_file):doc = Document(input_file)all_dois = []doi_original_index = {}index = 1# 提取文档中所有DOI并编号for paragraph in doc.paragraphs:dois = extract_dois(paragraph.text)for doi in dois:if doi not in all_dois:all_dois.append(doi)doi_original_index[doi] = indexindex += 1references = []successful_dois = []failed_dois = []# 获取每个DOI的参考文献信息for doi in all_dois:reference = get_reference(doi)if reference:references.append(reference)successful_dois.append(doi)else:failed_dois.append(doi)# 将文档中的DOI替换为上标引用序号for paragraph in doc.paragraphs:for doi in all_dois:if doi in successful_dois:index = successful_dois.index(doi) + 1runs = paragraph.runsfor run in runs:if doi in run.text:parts = run.text.split(doi)run.text = parts[0]new_run = paragraph.add_run(f"[{index}]")new_run.font.superscript = Truerun = paragraph.add_run(parts[1])# 在文档末尾添加参考文献列表doc.add_page_break()doc.add_heading('参考文献', level=1)for i, reference in enumerate(references, start=1):doc.add_paragraph(f"[{i}] {reference}")doc.save(output_file)# 打印转换结果print("成功转换的DOI:")for doi in successful_dois:print(doi)print("\n转换失败的DOI:")for doi in failed_dois:original_index = doi_original_index[doi]print(f"{original_index}. {doi}")

convert_dois_in_word函数接收输入、输出文件路径参数input_fileoutput_file。打开输入Word文档,遍历段落提取所有DOI,为每个唯一DOI编号并存储。尝试获取每个DOI的参考文献信息,区分成功与失败的DOI。再次遍历段落,将成功获取信息的DOI替换为上标引用序号。在文档末尾添加分页符、“参考文献”标题及格式化的参考文献列表,最后保存文档并打印成功和失败转换的DOI信息。
5. 使用示例

input_file = 'input.docx'
output_file = 'output.docx'
convert_dois_in_word(input_file, output_file)

定义输入、输出文件路径,调用convert_dois_in_word函数执行对Word文档DOI的转换和参考文献生成操作。

http://www.dtcms.com/a/489244.html

相关文章:

  • 网站建设和推广的话术云南做企业网站多少钱
  • 杭州外贸网站建设公司申跃seo专业培训课程
  • 化妆品购物网站建设目的网站logo替换
  • 网站开发的一般流程是什么网页设计欣赏及评析
  • 免费物流公司网站模板上海网站开发制作公司
  • 南京市住房城乡建设门户网站建设网站后怎么发布
  • 网站开发多少钱一单特效很好的网站
  • 网站开发技术html5网站留言板html模板
  • 苏州外贸网站建设运营网站建设代运营方案
  • 用c做网站流量神器
  • 网站建设费用做什么科目wordpress网站加速
  • 京东网站的建设与发展现状微信网站地址
  • 网站建设推广优化做网站那个语言好
  • php网站后台登陆不了购物网站开发模板
  • 企业网站建设的文献wordpress底部排
  • 网站设计制作工作室潍坊营销型网站制作
  • 网站建设部门管理制度网站开发 大学专业
  • 青岛网站设计网站比较好的做简历的网站
  • 企业网站Wap在线生成南昌网站建设南昌吊车出租
  • 怎么选择手机网站建设马尾福州网站建设
  • 程序_做彩票源码网站开发HTML网站制作设计
  • 网站运营经验网络设计师未来人生规划
  • 网站开发接口阜阳网站开发招聘
  • 中国联通网站备案及ip地址备案管理要求建设银行资讯网站
  • 青岛网站建设的流程有哪些网站节约化建设
  • 网站快照不更新原因源码下载网站有哪些
  • 济南简单网站制作排名公司邯郸做网站
  • 设置网站的黑名单怎么做网站备案安全责任书是谁盖章
  • 上海网站建设哪家宜春网站开发公司电话
  • 邵阳竞价网站建设设计定制网站建设简介