Can't find file - FileNotFoundError: [Errno 2] No such file or directory
Can't find file - FileNotFoundError: [Errno 2] No such file or directory
我的代码如下所示:
import os
from os import listdir
from os.path import isfile, join
import pyexcel as p
rootdir = r'C:/Users/aleks/Desktop/test'
for subdir, dirs, files in os.walk(rootdir):
for file in files:
if file.endswith('.xls'):
new_file = p.save_book_as(file_name=file, dest_file_name=file.split('.')[0]+ '.xlsx')
os.remove(file)
else:
continue
现在我知道这部分工作正常,因为它returns正是我想要的:
rootdir = r'C:\Users\aleks\Desktop\test'
for subdir, dirs, files in os.walk(rootdir):
for file in files:
print(file)
使用 print(file)
后文件被正确列出,但我无法将它们转换为 xlsx,因为出现错误:FileNotFoundError: [Errno 2] No such file or directory: 'file1.xls'
。我觉得这很奇怪,因为我可以清楚地看到使用 print(file)
后的文件
澄清一下,在 rootdir 中有包含必须转换的 .xls 文件的目录 into.xlsx
试试下面的代码。我想问题是您尝试删除 sub_directory 中不同于 Python 根目录的文件。
for root, dirs, files in os.walk(rootdir):
for name in files:
if name.endswith('.xls'):
fname = os.path.join(root, name)
new_file = p.save_book_as(file_name=fname, dest_file_name=os.path.join(root, fname.split('.')[0]+ '.xlsx'))
os.remove(fname)
我的代码如下所示:
import os
from os import listdir
from os.path import isfile, join
import pyexcel as p
rootdir = r'C:/Users/aleks/Desktop/test'
for subdir, dirs, files in os.walk(rootdir):
for file in files:
if file.endswith('.xls'):
new_file = p.save_book_as(file_name=file, dest_file_name=file.split('.')[0]+ '.xlsx')
os.remove(file)
else:
continue
现在我知道这部分工作正常,因为它returns正是我想要的:
rootdir = r'C:\Users\aleks\Desktop\test'
for subdir, dirs, files in os.walk(rootdir):
for file in files:
print(file)
使用 print(file)
后文件被正确列出,但我无法将它们转换为 xlsx,因为出现错误:FileNotFoundError: [Errno 2] No such file or directory: 'file1.xls'
。我觉得这很奇怪,因为我可以清楚地看到使用 print(file)
澄清一下,在 rootdir 中有包含必须转换的 .xls 文件的目录 into.xlsx
试试下面的代码。我想问题是您尝试删除 sub_directory 中不同于 Python 根目录的文件。
for root, dirs, files in os.walk(rootdir):
for name in files:
if name.endswith('.xls'):
fname = os.path.join(root, name)
new_file = p.save_book_as(file_name=fname, dest_file_name=os.path.join(root, fname.split('.')[0]+ '.xlsx'))
os.remove(fname)