我正在尝试创建一个.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))
答案 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}}是一个例外。