最近写论文参考文献的大小写搞得我很烦,不同网站的论文英文格式大小写都不一样,但是论文里的格式要统一,索性写了个python脚本,实现大小写转换。
运行效果如下:
代码脚本如下:
print("\n################################################################\n"
"############### 英文名称大小写转换 version--1.2 ################\n"
"########## 这个小脚本用来改论文、会议名称之类的很好用 ##########\n"
"#### 无论是输入纯英文还是中英文数字混合输入,均可以进行转换 ####\n"
"############## 当然,最后只管转换英文字符的大小写 ##############\n"
"################################################################\n"
"\t\t\t\t\t\t————【KangLance创建于2023.3.7】")
# 顶刊顶会的名称列表及出版年份
target = ['ICCV', 'CVPR', 'ECCV', 'ICMR', 'ACM']
years = ['2019', '2020', '2021', '2022', '2023']
# 介词、连词需特殊处理
key_word = ['OF ', 'Of ', 'of ', 'IN ', 'In ', 'in ', 'ON ', 'On ', 'on ', 'AT ', 'At ', 'at ',
'WITH ', 'With ', 'with ', 'AND ', 'And ', 'and ', 'VIA ', 'Via ', 'via ', 'FOR ', 'For ', 'for ']
count = 0 # 初始化总文章篇数计数器为0
# years_count = 0 # 过时文章计数器为0
while True:
message = input("\n\n输入想要转换的论文名称,并按下回车键/或者输入“quit”退出: ") # 获取键入的信息
# message = "Tommy told me THaT thERe was a Cat IN THe car. FOR For for Forever."
if message == "": # 空字符串
print("\n###### 没有检测到输入!######")
elif message == "quit":
break
elif message:
count += 1 # 每次循环,总文章计数器加1
message = message.strip() # 这个是为了删除不小心输入的首尾两端的空格
number = len(message) # 字数统计
print(f"\n这是您的第【{count}】篇参考文献,当前名称共包含{number}个字符,转换结果如下:")
print(f"------全大写------ \n{message.upper()}")
print(f"------全小写------ \n{message.lower()}")
print(f"------首字母大写------ \n{message.title()}")
if any(k in message.lower() for k in key_word): # 介词、连词列表遍历检测
print(f"------首字母大写(介词、连词小写)----- \n{message.title().replace('Of ', 'of ').replace('In ', 'in ').replace('On ', 'on ').replace('At ', 'at ').replace('With ', 'with ').replace('And ', 'and ').replace('Via ', 'via ').replace('For ', 'for ')}\n")
else:
print(f"------首字母大写(介词、连词小写)------ \n{message.title()}\n") # 对于本身就不包含介词连词的,直接运行
# message_input = message.lower()
# 定义一个空格检测函数
# def check():
# if any(k in message.lower() for k in key_word):
# index = message.lower().index()
# if message_input[index + 2] or message_input[index + 3] == "":
# print(f"仅首字母大写: {message.title().replace('Of', 'of').repalce('The','the')}")
# if not any(k in message.lower() for k in key_word):
if any(x in message.upper() for x in target):
print("###### 诶呦喂,您今儿个引的这篇儿瞅着像顶刊顶会啊!那敢情好,真叫一个地道!######")
if not any(y in message for y in years):
print("###### 没有检测到出版年份或者不是最近5年的文献,您这可能有点out了~~ ######")
# years_count += 1 # 过时文章计数器计数器加1