【问题标题】:how to write csv file into specific folder如何将csv文件写入特定文件夹
【发布时间】:2019-07-23 11:31:20
【问题描述】:

我正在尝试将多个 .csv 文件写入一个特定目录

这是我的代码

with open(f+'.csv', 'w', newline='') as csvfile:
    writer = csv.writer(csvfile)

    writer.writerow(["index", "B", "G", "R"])

    for row in rows:
        writer.writerow(row)

    writer.writerow(["Mean", mean_b/total_b, mean_g/total_g, mean_r/total_r])
    writer.writerow("STD", np.sqrt(var_b/total_b), np.sqrt(var_g/total_g), np.sqrt(var_r/total_r))

我已将 csv 文件创建到与 .py 文件相同的目录中 但是我想创建一个目录并在其中创建我的 csv 文件

我知道我需要 os.makedirs() 函数

但我不知道我是否必须先创建目录并指定 csv 文件的路径,或者我只是将目录名称放入 open() 函数

请帮帮我

【问题讨论】:

  • 请将您的代码发布为文本,而不是图片。
  • 在开始循环文件之前,请确保该文件夹是否存在。如果不是 - 创建它。你可以使用'os.path.isdir("/the_folder_name")'
  • 我冒昧地将您的图像换成了实际的文本/代码。我希望我能正确理解所有细微差别和拼写。如果有什么不合适的地方,请更正该块。
  • 感谢指正,我是 python 和英语的新手

标签: python csv directory


【解决方案1】:

我建议使用 pathlib 模块,而不是使用 os。 您可以使用以下命令创建目录:

path = Path('path/to/dir')
path.mkdir(parents=True)

创建目录及其所有缺少的父目录。 完成此操作后,您可以在新目录中创建一个文件

fpath = (path / 'filename').with_suffix('.csv')
with fpath.open(mode='w+') as csvfile:
    # your csv writer code

【讨论】:

    【解决方案2】:

    您可以在open 语句之前添加这样的目录检查

    dir_path = 'folder_to_save_csv_file_in'
    if not os.path.isdir(dir_path):
        os.makedirs(dir_path)
    
    with open('{file_path}.csv'.format(file_path=os.path.join(dir_path, file_name), 'w+') as csv_file:
        ....
    

    【讨论】:

      【解决方案3】:

      我会简单地创建目录,但目录存在错误

      try:
         os.mkdir("./CSV")
      except OSError as e:
         print("Directory exists")
      
      with open("./CSV/" + f + ".csv", newline="") as csvfile:
         [...]
      

      【讨论】:

      • 哦,我将“”更改为“”,虽然我不知道原因,但它可以工作。感谢您解决问题
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-12
      • 2019-11-26
      • 2017-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多