【问题标题】:How do you save edited csv file in a subfolder如何将编辑后的 ​​csv 文件保存在子文件夹中
【发布时间】:2021-03-09 15:55:31
【问题描述】:

我有以下代码,我在其中打开文件中的所有 csv,编辑它们,然后将它们全部保存为 csv-1-edited.csv、csv-2-edited.csv 等。

我正在尝试将这些 -edited.csv 文件保存到单独的子文件夹中。 我尝试了不同的方法,但都没有奏效。

有人知道吗?

代码:

    csv_folder = Path('folder-path')    
for file in csv_folder.glob('*.csv'): #Create iteratable & iterate on it.
    df = pd.read_csv(file)
[my code to edit the file]
    new_file_name = file.parent.joinpath(f"{file.stem}-edited.csv")
    df.to_csv(new_file_name, index=None, encoding='utf-8-sig', decimal=',')

【问题讨论】:

    标签: python pandas csv path


    【解决方案1】:

    最佳做法是使用os.path.join(),因为它会根据您的操作系统文件夹分隔符(Windows '\' 或 Mac/Linux '/')将两个或多个字符串连接到路径中

    import os
    new_file_name = os.path.join(csv_folder, "new_sub_folder", f"{file.stem}-edited.csv")
    

    如果 ypu 使用 Mac/Linux,将输出 <csv_folder>/new_sub_folder/<file.stem>-edited.csv

    【讨论】:

    • 你们摇滚!非常感谢!
    【解决方案2】:

    创建子文件夹后,添加文件夹名称,如下所示:

    new_file_name = file.parent.joinpath(f"{folder_name}/{file.stem}-edited.csv")
    

    【讨论】:

      【解决方案3】:

      只需定义子文件夹的路径

      newpath = 'mysubfolder'
      df.to_csv(newpath + '/' + filename , index=None, encoding='utf-8-sig', decimal=',')
      

      并将其插入您的代码中。

      【讨论】:

      • 您好,非常感谢您的回复。我试过这个版本,错误是:“can only concatenate str (not "WindowsPath") to str"
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-19
      • 2019-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多