【发布时间】:2021-06-10 18:17:53
【问题描述】:
情况:我有一个充满 .csv 文件(超过 100 个)的文件夹,我想使用 for 循环将其转换为单独的 .xlsx 文件。我尝试了以下代码,但遇到了一些问题/疑问
import pandas as pd
import os
for file in os.listdir("M:\example_path\csv"):
if file.endswith('.csv'):
# print(file)
read_file = pd.read_csv(file)
read_file.to_excel("M:\example_path\csv", index=None, header=True)
问题 1:我从 read_file 收到错误 FileNotFoundError: [Errno 2] No such file or directory,但 print(file) 可以列出该文件夹中的所有 .csv 文件。
问题2:如果我想给每个转换后的.xlsx文件与.csv文件同名(即将a.csv转换为a.xlsx,b.csv转换为b.xlsx等),我应该如何实现这个?
感谢您的帮助!
【问题讨论】:
-
您忘记加入路径。
file_path = os.path.join("M:\example_path\csv", file). -
@Mercury 你的意思是我应该在
read_file之前添加file_path = os.path.join("M:\example_path\csv", file)并更改为pd.read_csv(file_path)吗? -
是的。任何不在当前工作目录中的文件都需要完整路径才能加载。
-
@Mercury 好的,谢谢您的帮助。你对第二个问题也有想法吗?
-
更改后缀:
filename.split('.')[0] + '.xlsx'