#python #loops #directory
Вопрос:
У меня есть скрипт, который просматривает папки и считывает каждый файл, а затем применяет исправление. В результате исправления он создает новый файл и помещает его в папку.
Тем не менее, когда он работает, он создает первую папку, затем помещает в нее файлы и отлично работает. И все же ему не удается создать вторую папку? Если я запущу скрипт во второй раз, он создаст вторую папку ( так как первая папка уже создана), и я не могу понять, почему?
Я почти уверен, что мне следует добавить цикл for в конце блока, но ничего не сработало
import os
import pandas as pd
projpath1 = '/Users/briankeane/PycharmProjects/pythonProject/SS_Remove_Blank_Data'
projpath2 = '/Users/briankeane/PycharmProjects/pythonProject/venv/lib'
for root, dirs, files in os.walk(f'{projpath1}', topdown=True):
for fname in dirs:
dirname = (os.path.join(root, fname))
folder = fname
sfolder = folder
# print(fname)
for nfolder in sfolder:
if not os.path.exists(sfolder):
os.makedirs(sfolder)
print("New folder created: ",sfolder)
for root, dirs, files in os.walk(f"{projpath1}", topdown=False):
for name in files:
if not name.startswith('.DS_Store'):
split = name.split("/")
title = split[0]
filename = (os.path.join(root, name))
#print(filename)
inputf = os.path.expanduser(f'{projpath1}/{folder}/{title}')
updatedf = os.path.expanduser(f'{projpath2}/{sfolder}/Corrected_{title}')
with open(inputf, "r") as text_file, open(updatedf, "w") as new_txt_file:
text_file = pd.read_csv(inputf, header=0, names=("Date", "Time", "Eastings", "Northings"))
df2 = text_file.dropna(subset=["Eastings", "Northings"], inplace=False)
print("New files created:", updatedf)
new_txt_file.write(df2.to_csv())
new_txt_file.close()
Комментарии:
1. Код довольно плотный, и вопрос до некоторой степени расплывчатый, подумайте о перефразировании. ИЛИ объясните свою проблему и покажите ожидаемый результат