如何将目录下所有文件名完整存储到Excel?代码问题求助
问题:目录文件名存入Excel仅保存两行
我编写的Python代码能打印指定目录下的所有文件名,但将这些文件名存入Excel时,仅成功保存了两行,而非全部。
原代码
import os import pandas as pd path = "//home//halovivek//Downloads//education//Jimi Kwik - Super Brain//" list = [] for (root,dirs, file) in os.walk(path): for f in file: print(f) my_data = pd.DataFrame(file) my_data.to_excel("outputfile.xlsx", index = False, header= False)
错误原因
你虽然定义了list变量,但完全没有把遍历到的文件名存入其中。最后创建DataFrame时用的是os.walk最后一次循环返回的file变量——这个变量只包含最后一个子目录里的文件,所以Excel里只保存了该目录下的文件(对应你看到的两行)。
修正后的代码
import os import pandas as pd # Linux路径用单斜杠更规范,避免不必要的转义 path = "/home/halovivek/Downloads/education/Jimi Kwik - Super Brain/" # 不要用list作为变量名,会覆盖Python内置的list类型 file_list = [] for root, dirs, files in os.walk(path): for f in files: print(f) # 将每个遍历到的文件名添加到列表中 file_list.append(f) # 用收集了所有文件名的列表创建DataFrame my_data = pd.DataFrame(file_list) my_data.to_excel("outputfile.xlsx", index=False, header=False)
关键修改点
- 把遍历到的每个文件名通过
append()存入列表,确保所有目录的文件都被收集 - 避免使用
list作为变量名,防止覆盖Python内置类型 - 优化路径写法,Linux系统下使用单斜杠更符合规范
内容的提问来源于stack exchange,提问作者vivek rajagopalan
相关产品推荐
相关产品推荐

