Попросите пользователя вставить каталог, чтобы создать папку и файл - PullRequest
0 голосов
/ 29 марта 2019

что я хочу сделать с моим кодом:

  1. Попросить пользователя ввести путь, по которому будет создана папка
  2. Попросить пользователя назвать папку
  3. Попросите пользователя назвать файл
  4. Записать текст в файл внутри этой вновь созданной папки

С моим кодом я создал папку, но она не пишеттекст в файл внутри этой новой папки.Кто-нибудь может мне помочь с этим?

Я получаю следующую ошибку:

Traceback (последний вызов был последним): Файл "/Users/nataliaresende/Dropbox/PYTHON/word_concatenator_final.py",строка 390, в файле меню () "/Users/nataliaresende/Dropbox/PYTHON/word_concatenator_final.py", строка 384, в файле меню remove_paratext () "/Users/nataliaresende/Dropbox/PYTHON/word_concatenator_final.py", строка 342,в remove_paratext с open (file, 'w') как f: IsADirectoryError: [Errno 21] Является каталогом: '/Users/nataliaresende/Dropbox/PYTHON/no_tag/chap1.txt

Мой код:

file_to_open=input('Enter your file name: ')

with open(file_to_open) as t:
    text=t.read()

pat=re.compile(r'(\[@PARAST@\]).+?(\[@PARAFN@\])')


s = re.sub(pat, '', text)

user=input('\n\nCreate a folder?| Y/N: ')


if user == 'Y':
    folder_path=Path(input('\n\nEnter your folder path: '))
    folder_name=input('\n\nName your folder: ')
    file_name=input('\n\nName your file: ')
    file_path=os.path.join(folder_path, folder_name)
    os.makedirs(file_path)
    file=os.path.join(file_path,file_name)

    with open(file, 'w') as f:
        f.write(s)
    print('\n\nText named', file_name +'.txt', 'written to a file. Check folder named',folder_name, 'in your directory')
else:
    no_tags1=open(file_to_open + 'no_tags.txt', 'w')
    no_tags1.write(s)
    no_tags1.close()

Я предполагаю создать запись текста, хранящегося в переменной, в файл внутри папки, созданной и названной пользователем.

1 Ответ

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

Кажется, проблема в том, что новый каталог, который вы пытаетесь создать, уже существует.

Вы можете увидеть это с помощью строки: "в makedirs mkdir (имя, режим) FileExistsError: [Errno 17] Файл существует: '/ Users / nataliaresende / Dropbox / PYTHON / no_tags'"

Чтобы решить эту проблему, просто добавьте попытку, за исключением строки os.makedirs (file_path)

try:
    os.makedirs(file_path)
except FileExistsError:
     print("Directory already exist")
     #Do sommething else or just pass
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...