Как записать CSV-файл в определенную папку - PullRequest
0 голосов
/ 01 марта 2019

я пытаюсь записать несколько файлов .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 в каталог, который совпадает с.Однако я хотел бы создать каталог и создать в нем свой CSV-файл

Я знаю, что мне нужна функция os.makedirs ()

, но я не знаю, есть ли у менячтобы сначала создать каталог и указать путь к CSV-файлу, или просто введите имя каталога в функцию open ()

, пожалуйста, помогите мне

Ответы [ 3 ]

0 голосов
/ 01 марта 2019

Вы можете добавить проверку для каталога, как это, перед 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:
    ....
0 голосов
/ 01 марта 2019

Вместо использования os я рекомендую использовать модуль pathlib.Вы можете создать каталог с помощью:

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
0 голосов
/ 01 марта 2019

Я бы просто создал каталог, и кроме каталога существует ошибка

try:
   os.mkdir("./CSV")
except OSError as e:
   print("Directory exists")

with open("./CSV/" + f + ".csv", newline="") as csvfile:
   [...]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...