这会读入文件名并使用正则表达式来检查格式是否正确。问题是连字符可能并不总是存在,因此re.split()
可能会产生不可预测的结果,这使得之后很难“重建”正确的字符串格式,但我不排除这种方法。另一个问题split()
是任何空格在之后仍然存在,从而在重建字符串后否定任何好处。所以我尝试了另一个正则表达式finditer()
和另一个findall()
,但这些仍然只找到第一个 6 位数字。
这是正确文件名的示例(错误名称具有不同的空格):
201308 - (82608) - MAC 2233-007-Methods of Calculus - Klingler, Lee.txt
这是我一直在尝试的一些东西,我会为你省去剩下的麻烦(围绕它的更大的程序):
#res = re.findall(r"[\.\-]",f0)
res = [str(m.group(0)) for m in re.finditer(r'[^\-]', f0)]
if res: print res
else: print "error on %s"%res
s0 = "['@ @ @ @ @ @ @ @ 201308 ', ' (12345)', 'ABC 2233L', '007', 'course Name', 'last, first.txt']"
#s = f0.split('-'); s = s[0]; print "sssss ",s#,type(s)
具有不正确空格的字符串示例如下:
201308-(82609)-MAC 2233-007-Methods of Calculus - Klingler, Lee.txt
主要目标是接收文件名(任何数量的符号、字母、数字、空格都可能完全错误),并将其转换为正确的格式。由于您无法检查所有可能的错误,因此我正在尝试使用这些方法至少修复额外(或缺少)的空白。