PyCharm Python3.6下创建.txt文件后无法直接删除的问题求助
解决创建文件后无法立即删除的问题
嘿,这问题我太熟了!你遇到的情况是因为文件创建后还被Python的文件对象死死占用着,哪怕用了flush()也没用——因为它只是把缓冲区内容刷到磁盘,根本没释放文件句柄,操作系统会锁定这个文件,导致你的程序没法直接删掉它。
最靠谱的解决方案:用with语句管理文件
Python里处理文件最推荐的就是with上下文管理器,它会自动帮你关闭文件、释放资源,完全不用手动操心:
import os temp = input("Please Enter File Name to create: ") # with块结束后会自动调用close(),彻底释放文件 with open(temp,"w+") as FileName: print("File Created!\n") temp = input("Please Enter File Name to delete: ") os.remove(temp) print("File Removed!")
手动处理的替代方案
如果你不想用with,那得确保彻底关闭文件并移除对象引用:
import os temp = input("Please Enter File Name to create: ") FileName = open(temp,"w+") print("File Created!\n") # 先关闭文件句柄 FileName.close() # 手动删除对象引用,让系统尽快释放文件锁 del FileName temp = input("Please Enter File Name to delete: ") os.remove(temp) print("File Removed!")
简单说下为啥之前的操作没用:flush()只是把内存里的内容写到硬盘,但文件还是处于“打开”状态,操作系统不允许删除正在被使用的文件。只有当文件句柄被完全释放后,才能顺利删除。
内容的提问来源于stack exchange,提问作者user9119777
相关产品推荐
相关产品推荐

