我在python 2.7中编写了一些代码来从给定目录中提取文件列表并输出到csv文件。相当简单,大部分都很棒。我正在使用此代码获取文件名并将其添加到列表中。然后我会打印一次收集的清单。有命令行选项可确定要使用的扩展名。这工作正常。
for root, dirnames, filenames in os.walk(lines):
if searchtype == 'all':
for filename in fnmatch.filter(filenames, '*'):
matches.append(os.path.join(root, filename))
elif searchtype == 'audio':
for extensions in audio_ext:
for filename in fnmatch.filter(filenames, extensions):
matches.append(os.path.join(root, filename))
elif searchtype == 'video':
for extensions in video_ext:
for filename in fnmatch.filter(filenames, extensions):
matches.append(os.path.join(root, filename))
当我尝试使用此打印前获取修改日期时,会出现此问题。
for entries in matches:
mod_date = datetime.datetime.fromtimestamp(os.path.getmtime(entries)).\
strftime ('%Y-%m-%d %H:%M:%S')
这适用于某些文件,然后错误输出错误代码2。
[Error 2] The system cannot find the file specified: 'E:\\Mp3s\\Artists_A-D\\Beatles, The\\Anthology 1\\60 - Kansas City Hey-Hey-Hey-Hey!.mp3'
从列表中打印的文件(匹配)如下:
E:\Mp3s\Artists_A-D\Beatles, The\Anthology 1\60 - Kansas City Hey-Hey-Hey-Hey!.mp3
现在文件肯定存在,如果我跳过修改日期并打印出文件名就没有问题。它可以毫无问题地浏览50k文件。所以我有点难过。起初我以为是!搞乱路径,但似乎并非如此,因为它没有mod日期打印很好。我甚至更新了mod日期,看看是不是它,仍然没有快乐。我还是相当新的Python,所以有什么想法吗?