@Bjornie
Изучаю Python

Как пройтись по субдиректориям и в каждой создать нужный файл?

Задача пройтись по субдиректориям, в каждой из которых прочитать все имеющиеся csv-файлы и объединив их строки, сохранить всё файл в соответствующей папке.

На данный момент готов код для чтения всех папок и файлов внутри:
import sys, os
root = r"C:\py\results\csv" # внутри другие папки с csv-файлами
for path, subdirs, files in os.walk(root):
    for name in files:
        csvfile = os.path.join(path, name)
        with open(csvfile, 'r') as file:
                for url in file:
                        writecsv(url, filename)

# Функция для записи строк в один файл для каждой папки
def writecsv(url, filename):
     with open(filename + '.csv', 'a') as f:
         f.write(url + "\n")


Перепробовал многие варианты, но все получается не то: то зацикливаюсь внутри папок, то выдаются какие-то другие ошибки. Хочу сделать полностью автоматическое решение, которое прочитает все файлы в подпапках и в каждой из них создаст по файлу. Например 5 папок по 10 csv внутри создаст 5 csv файлов (по одному в каждой подпапке). Помогите разобраться.
  • Вопрос задан
  • 165 просмотров
Решения вопроса 1
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
import sys, os
root = r"C:\py\results\csv" # внутри другие папки с csv-файлами
for path, subdirs, files in os.walk(root):
     with open(os.path.join(path, "output.cvs"), 'w') as f:
        for name in files:
          if not name.endswith(".cvs"): continue
          csvfile = os.path.join(path, name)
          with open(csvfile, 'r') as file:
              for url in file:
                   f.write(url + "\n")
# Функция для записи строк в один файл для каждой папки
#def writecsv(url, filename):
#     with open(filename + '.csv', 'a') as f:
#         f.write(url + "\n")
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы