我有一个脚本,如果我传递文件名,我就可以打开文件,但现在文件的数量正在增加,并且必须在每个文件上单独运行该脚本是没有意义的。所以我决定让python读取目录中的所有文件。
for root, dirs, files in os.walk("Approved_LRPMP_Worksheets/"):
for fyle in files:
if fyle.endswith(".xlsx"):
print fyle
book = xlrd.open_workbook(fyle)
print "book opened"
输出是:
I found a file: Agoura Hills LRPMP Review Sheet.xlsx
Traceback (most recent call last):
File "test.py", line 21, in <module>
book = xlrd.open_workbook(fyle)
File "/Library/Python/2.7/site-packages/xlrd/__init__.py", line 394, in open_workbook
f = open(filename, "rb")
IOError: [Errno 2] No such file or directory: 'Agoura Hills LRPMP Review Sheet.xlsx'
文件显然正在被读取,文件名在我收到错误之前在命令行中输出。我觉得这是一个简单的事情,我应该捕获它,但它在过去 30 分钟里一直在逃避......
最佳答案
这是一个简单的修复,我很愚蠢。
for root, dirs, files in os.walk("Approved_LRPMP_Worksheets/"):
for fyle in files:
if fyle.endswith(".xlsx"):
print "I found a file: " + fyle
fyleName = "Approved_LRPMP_Worksheets/"+fyle
book = xlrd.open_workbook(fyleName)
大功告成
关于Python XLRD 没有这样的文件或目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21439947/