Python 创建文件循环

Python 创建文件循环,python,file,while-loop,user-input,Python,File,While Loop,User Input,如何向用户请求文件名,如果文件名已经存在,则询问用户是否要覆盖文件名,并遵从其请求。如果文件不存在,则应创建一个新文件(具有选定名称)。 通过对Python网站和堆栈溢出的一些研究,我得出了以下代码 try: with open(input("Please enter a suitable file name")) as file: print("This filename already exists") except IOError: my_file = o

如何向用户请求文件名,如果文件名已经存在,则询问用户是否要覆盖文件名,并遵从其请求。如果文件不存在,则应创建一个新文件(具有选定名称)。 通过对Python网站和堆栈溢出的一些研究,我得出了以下代码

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中运行,也不会完成我希望它完成的所有操作。

您可以使用
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

如果你想遵守整个“更容易请求原谅”的座右铭,你可以用try/except来做到这一点,但我认为这更干净。

你可以使用
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

如果你想遵守整个“更容易请求原谅”的座右铭,你可以尝试/例外,但我认为这更干净。

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


使用
my\u file不再需要文件对象时,不要忘记关闭该文件对象。close()

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



使用
my_file.close()

as file
之前,不要忘记关闭file对象。它显示了什么错误?您是否关心检查文件存在的竞争条件?我添加了as文件的)所以现在它将运行,但是,当询问文件名时,它会自动说它以前使用过,即使它没有跟踪条件:有很多不同的事情(覆盖文件、创建文件、在一个while循环中进行所有操作、检查以前的文件是否存在等等),所以我只是有点卡住了!虽然大多数问题都有解决方案,但我正在努力应用并结合它们以供我自己使用。您是否在
as file
之前忘记了
?它显示了什么错误?您是否关心检查文件存在的竞态条件?我添加了as file的)以便现在它将运行,但是,当询问文件名时,它会自动说它以前使用过,即使它没有跟踪条件:有很多不同的事情(覆盖文件、创建文件、在一个while循环中进行所有操作、检查以前的文件是否存在等等),所以我只是有点卡住了!尽管这些问题中的大多数都有解决方案,但我正在努力应用并结合它们以供自己使用。我在单独的python文件中单独尝试了您的解决方案,但出现了以下错误:Enter nametesting Traceback(最近一次调用):第6行,在my_file=open(“filename.txt”,“r+”)FileNotFoundError:[Errno 2]没有这样的文件或目录:“filename.txt”我更改了它,现在这个错误出现在my_file=open(“filename.txt”,“r+”)FileNotFoundError:[Errno 2]没有这样的文件或目录:“filename.txt”错误消息中仍然有
'r+
。您在运行脚本之前保存了它吗?
os.path.isfile
不是更好的选择,因为OP想检查常规文件吗?@sxnwlfkk我以为我已经编辑过了,但显然没有。再次这样做,它似乎可以工作,但当我输入相同的名称时,程序只是接受了我自己在一个单独的python文件中尝试了您的解决方案,出现了以下错误:输入名称测试回溯(最近一次调用):第6行,在我的_文件=打开(“filename.txt”,“r+”)FileNotFoundError:[Errno 2]没有这样的文件或目录:“filename.txt”我更改了它,现在这个错误出现在my_file=open(“filename.txt”,“r+”)FileNotFoundError:[Errno 2]没有这样的文件或目录:“filename.txt”错误消息中仍然有
'r+
。您在运行脚本之前保存了它吗?
os.path.isfile
不是更好的选择,因为OP想检查常规文件吗?@sxnwlfkk我以为我已经编辑过了,但显然没有。再次这样做,它似乎工作,但当我输入相同的名称时,程序只接受它。你在(文件路径)中放了什么?是不是
os.path.isfile
一个更好的选择,因为OP想检查常规文件?你可以作为一个选项
file\u path=input(“指定文件路径”)
为什么他们需要指定文件路径?您的意思是为什么他们需要指定文件路径?你的整个问题都围绕着这样做,然后检查是否存在等等……你在(文件路径)中放了什么?
os.path.isfile
不是更好的选择吗,因为OP想检查常规文件?你可以作为一个选项
file\u path=input(“指定文件路径”)
为什么他们需要指定文件路径?您的意思是为什么他们需要指定文件路径?你的整个问题都围绕着这样做,然后检查是否存在等等。。。。