如何使用 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 解析 \ 个字符。