抱歉,我无法从谷歌的任何解决方案中找到有效的解决方法(某些网站上的“食谱”很接近,但是太过时了,我没有找到符合我要求的结果。
我正在重命名文件,因此我有一个函数可以输出文件名,我只是使用“test_string”,所以所有点(和下划线)和其他东西都被删除了 - 因为这些是所有这些教授做得不同的最常见的事情,并且使所有这些东西在不删除的情况下变得不可能处理(或查看)。 5个示例:
我正在重命名文件,因此我有一个函数可以输出文件名,我只是使用“test_string”,所以所有点(和下划线)和其他东西都被删除了 - 因为这些是所有这些教授做得不同的最常见的事情,并且使所有这些东西在不删除的情况下变得不可能处理(或查看)。 5个示例:
test_string_1 = 'legal.studies.131.race.relations.in.the.United.States.'
'legal.studies' --> '法律研究'
test_string_2 = 'mediastudies the triumph of bluray over hddvd'
'mediastudies' --> '媒体研究', 'bluray' --> '蓝光', 'hddvd' --> '高清DVD'
test_string_3 = 'computer Science Microsoft vs unix'
'computer Science' --> '计算机科学', 'unix' --> 'UNIX'
test_string_4 = 'Perception - metamers dts'
'Perception'已经很好了(但谁在意),大局是他们想保留音频信息,所以 'dts' --> DTS。
test_string_5 = 'Perception - Cue Integration - flashing dot example aac20 xvid'
'aac20' --> 'AAC2.0', 'xvid' --> 'XviD'
目前我正在运行类似以下方式的代码:
new_string = re.sub(r'(?i)Legal(\s|-|)Studies', 'Legal Studies', re.sub(r'(?i)Sociology', 'Sociology', re.sub(r'(?i)Media(\s|-|)Studies', 'Media Studies', re.sub(r'(?i)UNIX', 'UNIX', re.sub(r'(?i)Blu(\s|-|)ray', 'Blu-ray', re.sub(r'(?i)HD(\s|-|)DVD', 'HD DVD', re.sub(r'(?i)xvid(\s|-|)', 'XviD', re.sub(r'(?i)aac(\s|-|)2(\s|-|\.|)0', 'AAC2.0', re.sub(r'(?i)dts', 'DTS', re.sub(r'\.', r' ', original_string.title()))))))))))
我把它们都挤在一行上,因为我不经常更改/更新它,而且(我的大脑/注意力缺陷工作方式)在我不再修改此部分后,将其尽可能简化/放到一边更容易做其他事情。
因此,以我的例子为例:
new_test_string_1 = 'Legal Studies 131 Race Relations In The United States'
new_test_string_2 = 'Media Studies The Triumph Of Blu-ray Over HD DVD'
new_test_string_3 = 'Computer Science Microsoft Vs UNIX'
new_test_string_4 = 'Perception - Metamers DTS'
new_test_string_5 = 'Perception - Cue Integration - Flashing Dot Example AAC2.0 XviD'
然而,随着这些替换规则越来越多,我开始希望有一个词典之类的东西--我不想让代码变得太复杂,但我想能够添加新的替换规则以满足实际需要(例如,有很多音频编解码器/容器等,看起来我可能必须把它们都加进去)。至于用什么样的方式来建立这个主列表/字典/或其他东西,我没有意见。
总体而言,我正在修复文件名中的空格和下划线,并使用大写字母替换一堆东西(目前,我普遍采用标题大小写,但在进行re.sub替换时,会处理很多情况,其中大写字母并不完美,输入中可能会有空格、破折号或点,但输出应该没有这些符号)。
同样,最好使用一行命名为lambda函数之类的匿名函数。
附言: 对于一些奇怪的问题和最初缺乏清晰度的问题感到抱歉。我的专业学科大部分内容实际上都相当简单,只有其他课程需要涉及蓝光、HD DVD、DTS、AAC2.0、XviD等。