找不到文件 - FileNotFoundError: [Errno 2] 没有那个文件或目录

时间:2021-06-09 11:35:57

标签: python directory file-conversion file-not-found os.path

我的代码如下:

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

现在我知道这部分工作正常,因为它返回的正是我想要的:

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 中有包含必须转换为 .xlsx 的 .xls 文件的目录

1 个答案:

答案 0 :(得分:1)

试试下面的代码。我想问题在于您尝试删除 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)