读博的时候,在写文章投稿的时候会面临这样一个问题,不同的期刊对引用文献的格式有同的要求,比如每个单词首字母要大写, 但冠词和介词除外,比如作者姓名的缩写方式等等。
就以这个为例让GPT写个程序来实现:
“写一段程序,读取特定目录下的excel文件,对第1列中的文本做如下格式转换,除介词和冠词外的其他单词首字母都改为大写,去掉文本中的换行符,结果保存在第2列中。”
放到里跑下,成功搞定。
格式改正后的表:
源码如下,这只是个示例,实际上还可以增加更多格式校验的要求,此外, 也可以多添加几种格式要求,批量生成等等。
#文献格式转换工具, by GPT
os
re
from ,
# 定义需要匹配的介词和冠词
= ['a', 'an', 'the', 'A', 'An', 'The']
= ['about', 'above', '', 'after', '', 'along', 'among', '', 'at', '', '', 'below', '', '', '', '', 'but', 'by', 'down', '', '', 'for', 'from', 'in', '', 'into', 'like', 'near', 'of', 'off', 'on', 'onto', 'out', '', 'over', 'past', 'since', '', '', 'to', '', 'under', '', 'until', 'up', 'upon', 'with', '', '']
# 定义文件路径和文件名,此处改成你
= 'path/to/your/'
= '.xlsx'
# 加载Excel文件
= (=os.path.join(, ))
= .
# 遍历第1列的每个单元格
for row in .(=1, =1, =., =1):
cell = row[0]
text = cell.value
# 去掉文本中的换行符
text = text.('n', '')
# 将文本按空格分割为单词列表
words = text.split()
# 遍历单词列表,对每个单词进行格式转换
for i in range(len(words)):
word = words[i]
# 如果单词不是介词或冠词,则将单词首字母大写
if word not in and word not in :
words[i] = word.()
# 将单词列表重新组合成文本,并写入第2列的对应单元格
cell2 = .cell(row=cell.row, =2)
cell2.value = ' '.join(words)
# 保存修改后的Excel文件
= 'new_' +
.save(os.path.join(, ))