如何使用 Python 将充满 .csv 文件的文件夹转换为 .xlsx 文件?
How to convert a folder full of .csv files into .xlsx files with Python?
情况:我有一个充满 .csv 文件(超过 100 个)的文件夹,我想使用 for
循环将其转换为单独的 .xlsx 文件。我尝试了下面的代码,遇到了一些problems/questions
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
等),我该如何实现?
感谢您的帮助!
作为替代方案,您可以使用 glob.glob()
,这样您就可以只匹配 .csv
个文件。 os.path.splitext()
可用于帮助创建合适的输出文件名:
import pandas as pd
import os
from glob import glob
for csv_file in glob(r"M:\example_path\csv\*.csv"):
print(csv_file)
df = pd.read_csv(csv_file)
xlsx_file = os.path.splitext(csv_file)[0] + '.xlsx'
df.to_excel(xlsx_file, index=None, header=True)
另外不要忘记在文件路径前添加 r
以停止 Python 解析 \
个字符。
情况:我有一个充满 .csv 文件(超过 100 个)的文件夹,我想使用 for
循环将其转换为单独的 .xlsx 文件。我尝试了下面的代码,遇到了一些problems/questions
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
等),我该如何实现?
感谢您的帮助!
作为替代方案,您可以使用 glob.glob()
,这样您就可以只匹配 .csv
个文件。 os.path.splitext()
可用于帮助创建合适的输出文件名:
import pandas as pd
import os
from glob import glob
for csv_file in glob(r"M:\example_path\csv\*.csv"):
print(csv_file)
df = pd.read_csv(csv_file)
xlsx_file = os.path.splitext(csv_file)[0] + '.xlsx'
df.to_excel(xlsx_file, index=None, header=True)
另外不要忘记在文件路径前添加 r
以停止 Python 解析 \
个字符。