当前位置: 首页 > 知识库问答 >
问题:

该文件被另一个进程错误使用,随后是意外行为

段干靖
2023-03-14

我想创造一个新的世界。txt文件并使用下面的代码将其移动到指定的文件夹,但我得到了PermissionError:[WinError 32]该进程无法访问该文件,因为它正被另一个进程使用:“C:\Users\Emre\Desktop\testbot\asdf\testuser”。txt'

此错误后,脚本将在脚本正在运行的目录和我希望shutil将txt文件移动到的目录中创建txt文件。我该怎么办?提前谢谢。

    import shutil
    file = open("{}.txt".format(source), "w")
    file.write("username = {}\n".format(source))
    file.write("user_points = 200\n")
    file.close
    shutil.move("C:\\Users\\Emre\\Desktop\\testbot\\asdf\\{}.txt".format(source), "C:\\Users\\Emre\\Desktop\\testbot\\asdf\\users")
    self.bot.say(channel, "You have been successfully registered, {}!".format(source))

共有1个答案

公孙茂学
2023-03-14

你的密码是

file.close

当它应该说

file.close()

因为您只是“提到”了close方法,而不是实际调用它,所以文件没有关闭。因为它仍然打开,你将无法移动它。

请注意,打开文件的最佳实践是使用上下文管理器:

with open("{}.txt".format(source), "w") as file:
    file.write("username = {}\n".format(source))
    file.write("user_points = 200\n")

shutil.move( ...

然后,当您以任何原因退出带有子句的时,该文件将自动关闭-因此您不需要担心显式关闭它,即使您想提前返回或引发异常。

 类似资料:
  • 我正在使用python 2,并且已经阅读了关于这个错误的几篇文章,即(这篇文章)。然而,我仍然得到错误。我所做的是:我读取目录中的文件,如果其中任何文件包含特定的字符串,我就删除目录。 然后我得到错误: 我也尝试过使用绝对路径: 然后我会得到: 如果我一次删除一个文件,使用相同的绝对路径和操作系统。删除(“”),我不会有问题。如果我试图使用select_poo()和shutil同时删除所有文件。r

  • 我正在测试一个python代码,它将文件从源路径移动到目标路径。测试是使用Python3中的pytest完成的。但我在这里面临着一个障碍。就是这样,我试图在代码结束时删除源路径和目标路径。为此,我使用了类似shutil的命令。rmtree(路径)或操作系统。rmdir(路径)。这导致了错误-“[WinError 32]该进程无法访问该文件,因为它正被另一进程使用”。请帮我做这个。下面是python

  • 下面是使用Ucanaccess Jdbc驱动程序从Microsoft Access文件filename.accdb获取连接的代码。但在运行此代码时,它会抛出异常,就像已经使用的文件一样。 但是我想在其他应用程序使用MSAccess数据库文件时并发地使用它。 当我运行上面的代码时,出现了如下异常: net.ucanaccess.jdbc.ucanaccesssqlexception:UCAEXC::

  • 我试图遍历目录中的所有文件,并为每个文件名添加一个值。使用文件。move会创建一个FileSystemException,并声明该文件正被另一个进程使用。使用注释掉的文件。移动(文件[i].toPath…)删除创建新文件,从目录中删除旧文件,但不会替换原始文件。任何帮助都将不胜感激。对于下面的错误,我有一个东西。txt文件保存在文档中,我想在文件名后面加上“e”。 C:\用户\Bob\文档- 在爪

  • 嗯,我做了这个脚本,它支持日志一些击键一段时间保存在一个文件中,然后擦除文件,如果用户想要然而当脚本tryes删除文件我得到这个错误。 Traceback(最近一次调用最后一次):文件"C:\用户\Tormenter\Desktop\S. D. A. K. L\pregunta.py",第34行,os.remove(path 2"\"name)PermissionError:[WinError 3