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

时间:2019-03-29 14:36:26

标签: python file directory

我想对我的代码进行处理:

  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中     使用open(file,'w')as 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 :(得分: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