“英文名称大小写转换“python脚本

该文章介绍了一个Python脚本,用于解决论文中参考文献英文名称的大小写不一致问题。脚本能处理纯英文和中英文数字混合的输入,转换全大写、全小写和首字母大写格式,并特别处理介词和连词的大小写。此外,脚本还能识别特定的顶刊顶会名称。
摘要由CSDN通过智能技术生成

最近写论文参考文献的大小写搞得我很烦,不同网站的论文英文格式大小写都不一样,但是论文里的格式要统一,索性写了个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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值