该文件被另一个进程错误使用,随后出现异常行为

时间:2018-12-14 14:43:58

标签: python python-3.x

我正在尝试创建一个.txt文件,并使用下面的代码将其移动到指定的文件夹,但是我得到 PermissionError:[WinError 32]该进程无法访问该文件,因为该文件正在被另一个文件使用。流程:“ C:\ Users \ Emre \ Desktop \ testbot \ asdf \ testuser.txt”

此错误,随后脚本在脚本运行的目录和我要关闭的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 个答案:

答案 0 :(得分:3)

您的代码说

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( ...

然后,无论出于任何原因退出with子句,该文件都会自动关闭-因此,即使您想提早return或{ {1}}是一个例外。