将科学论文 PDF 从一种名称模式重命名为另一种名称模式
Renaming scientific paper PDFs from one name pattern to another name pattern
我正在尝试使用 python 自动将科学论文的 PDF 从一种名称模式重命名为另一种名称模式。
PDF 出现的名称模式如下所示:
Cresswell, K., Worth, A., & Sheikh, A. (2011). Implementing and
adopting electronic health record systems. Clinical governance- an
international journal.
即"LastName1, FirstLetterGivenName1., LastName2, FirstLeterGivenName2., [...]。(年份)。标题。期刊。"
此示例的名称模式应重命名为如下所示:
Cresswell_K_2011_Implementing and adopting
即“LastName1_FirstLetterGivenName1_Year_First3LettersTitle”
遗憾的是我无法将解决方案应用于这个特定问题的类似问题,因为我才刚刚开始编码。
您可以使用正则表达式,例如:
import re
s = "Cresswell, K., Worth, A., & Sheikh, A. (2011). Implementing and adopting electronic health record systems. Clinical governance- an international journal."
p = re.compile(r'(?P<LastName1>[A-Za-z]+),\s+(?P<GivenName1>[A-Za-z]+)\.?,.+\((?P<Year>\d+)\)\.\s+(?P<Title1>\w+)\s(?P<Title2>\w+)\s(?P<Title3>\w+)')
m = p.search(s)
if m is not None:
d = m.groupdict()
result = d['LastName1'] +'_'+ d['GivenName1'][0] +'_'+ d['Year']+ '_'+ d['Title1']+ ' '+ d['Title2'] +' '+ d['Title3']
print(result)
这给出了输出:
Cresswell_K_2011_Implementing and adopting
我正在尝试使用 python 自动将科学论文的 PDF 从一种名称模式重命名为另一种名称模式。
PDF 出现的名称模式如下所示:
Cresswell, K., Worth, A., & Sheikh, A. (2011). Implementing and adopting electronic health record systems. Clinical governance- an international journal.
即"LastName1, FirstLetterGivenName1., LastName2, FirstLeterGivenName2., [...]。(年份)。标题。期刊。"
此示例的名称模式应重命名为如下所示:
Cresswell_K_2011_Implementing and adopting
即“LastName1_FirstLetterGivenName1_Year_First3LettersTitle”
遗憾的是我无法将解决方案应用于这个特定问题的类似问题,因为我才刚刚开始编码。
您可以使用正则表达式,例如:
import re
s = "Cresswell, K., Worth, A., & Sheikh, A. (2011). Implementing and adopting electronic health record systems. Clinical governance- an international journal."
p = re.compile(r'(?P<LastName1>[A-Za-z]+),\s+(?P<GivenName1>[A-Za-z]+)\.?,.+\((?P<Year>\d+)\)\.\s+(?P<Title1>\w+)\s(?P<Title2>\w+)\s(?P<Title3>\w+)')
m = p.search(s)
if m is not None:
d = m.groupdict()
result = d['LastName1'] +'_'+ d['GivenName1'][0] +'_'+ d['Year']+ '_'+ d['Title1']+ ' '+ d['Title2'] +' '+ d['Title3']
print(result)
这给出了输出:
Cresswell_K_2011_Implementing and adopting