我已经为项目编了一些代码,需要匹配文件名的开头。以下是在Windows中运行的代码。
for root, dirs, files in os.walk(up_path):
files.sort()
total_files += len(files)
print total_files
for fn in files:
print fn
filename_zero, extension = os.path.splitext(fn)
path2 = os.path.join(root, fn)
ID = re.match('^/d{1,10}', fn).group()
print ID
在Windows中,如果文件名为1234567-1.jpg
,则打印ID的结果为1234567
。
但是,在Linux中我得到Nonetype error
,其中打印ID返回NONE
我知道这意味着什么,没有匹配,因此没有生成ID
由于唯一的区别是从Windows迁移到Linux,两个系统之间的不同要求是什么?
我怎样才能按预期工作?
答案 0 :(得分:2)
错误,它不是/d
\d
,所以你的代码就是,
ID = re.match('^\d{1,10}', fn).group()
\d
匹配一个数字,即[0-9]