Мне нужно сделать следующее в моей программе:
a) Попросить пользователя ввести имя папки, которая будет создана в моем каталоге b) создать папку c) сгенерировать файлы внутри папки
Сгенерированные файлы - это разные тексты, извлеченные из книги с помощью REGEX.Я хочу, чтобы программа зацикливалась на всех совпадениях REGEX и автоматически помещала каждое совпадение в файл (каждый текст совпадал с файлом).Эти текстовые файлы должны храниться в этой вновь созданной папке, названной пользователем.
Моя программа создает папку, но только первый текст был записан в файл внутри этой новой папки.Кажется, что ошибка в цикле.Предупреждающее сообщение:
Chapter1.txt Traceback (последний вызов был последним): файл "/Users/nataliaresende/Dropbox/PYTHON/word_concatenator_final.py", строка 375, в меню () Файл ")/Users/nataliaresende/Dropbox/PYTHON/word_concatenator_final.py ", строка 365, в файле отдельный_chapters () Файл" /Users/nataliaresende/Dropbox/PYTHON/word_concatenator_final.py ", строка 224, в папке отдельных_файлов os.makedirs ()"/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/os.py", строка 221, в makedirs mkdir (имя, режим) FileExistsError: [ошибка 17] Файл существует: '/ Users / nataliaresende/ Dropbox / PYTHON / folder '
Кто-нибудь имеет представление о том, что происходит?Может быть, обделение?
us=input('\n\nEnter the name of the book or file: ')
pat = re.compile(r'(?<=\[@CHAPST@\]).+?(?=\[@CHAPFN@\])')
my_chapters=[]
with open(us, 'r', encoding="utf-8") as file:
for i in pat.findall(file.read()):
my_chapters.append(i)
print('\n\nThis book contains',len(my_chapters), 'chapters')
user2=input('\n\nWrite chapters to a file? | Y/N: ')
if user2 =='Y':
folder_name=input("Name your folder. E.g. 'Texts': ")
folder=os.path.join('/Users/nataliaresende/Dropbox/PYTHON/', folder_name)
os.makedirs(folder)
for j in range(len(my_chapters)):
chap='Chapter'+str(j+1) +'.txt'.format(folder_name)
file = os.path.join(folder, chap)
with open(file, "w") as f:
for item in my_chapters[j]:
f.write("%s" % str(item))
print('\n\n', chap)
print('\n\nChapters 1 -',len(my_chapters), 'written to a file separately. Check your folder named "Chapters" in your directory')