要求用户插入目录以创建文件夹和文件

问题描述 投票:0回答:1

我想用我的代码做的是:

  1. 要求用户输入将创建文件夹的路径
  2. 要求用户命名该文件夹
  3. 要求用户命名该文件
  4. 将文本写入此新创建的文件夹中的文件

使用我的代码,我创建了该文件夹,但它不会将文本写入此新文件夹中的文件。任何人都可以帮助我吗?

我得到的错误如下:

回溯(最近一次调用最后一次):文件“/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中打开(文件,'w')为f:IsADirectoryError:[Errno 21]是一个目录:'/用户/ 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()

我希望创建将存储在变量中的文本写入由用户创建和命名的文件夹内的文件。

python file directory folder
1个回答
0
投票

问题似乎是您尝试创建的新目录已存在。

您可以看到以下行:“在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
© www.soinside.com 2019 - 2024. All rights reserved.