创建文件循环

时间:2016-07-10 16:21:09

标签: python file while-loop user-input

如何向用户询问文件名是否已存在,请询问用户是否要覆盖文件名,并遵守他们的请求。如果该文件不存在,则应创建一个新文件(具有所选名称)。 通过对Python网站和Stack Overflow的一些研究,我得出了这个代码

try:
    with open(input("Please enter a suitable file name")) as file:
        print("This filename already exists")

except IOError:
    my_file = open("output.txt", "r+")

但是这不会在Python中运行,并且不能完成我想要它做的所有事情。

2 个答案:

答案 0 :(得分:1)

您可以使用os.path.exists检查文件是否已存在。

if os.path.exists(file path):
    q = input("Do you want to overwrite the existing file? ")
    if q == (your accepted answer):
       #stuff
else:
    #stuff

如果您想遵守“更容易请求宽恕”的座右铭,您可以尝试/除外,但我认为这更清晰。

答案 1 :(得分:1)

替代解决方案(但用户需要提供完整路径):

import os

def func():
    if os.path.exists(input("Enter name: ")):
        if input("File already exists. Overwrite it? (y/n) ")[0] == 'y':
            my_file = open("filename.txt", 'w+')
        else:
            func()

    else:
    my_file = open("filename.txt", 'w+')

请勿忘记my_file.close()不再需要关闭文件对象。