我正在创建一个登录系统,我想在重新启动系统时重置信息。我已将我的信息存储在名为accounts
的目录中的文本文件中。 data/accounts
目录中有文本文件和子目录。
我认为我可以使用os.remove
,但它不起作用。到目前为止,我已经尝试过了。
import os
def infoReset():
os.remove("data/accounts/")
但它只是给了我一个"operation not permitted"
错误。如何删除data/accounts
目录及其内容?
答案 0 :(得分:2)
考虑使用TemporaryDirectory,它将在您完成后自动删除。这可以防止与手动相关的错误以及可能不安全的目录管理。
完成上下文或销毁临时目录对象后,新创建的临时目录及其所有内容将从文件系统中删除。
可以从返回对象的name属性中检索目录名称。当返回的对象用作上下文管理器时,该名称将被分配给with语句中as子句的目标(如果有)。
可以通过调用cleanup()方法显式清理目录。
这是一个适用于您的用例的简略示例:
import tempfile
# At the beginning of your program, create a temporary directory.
tempdir = tempfile.TemporaryDirectory()
...
# Later, remove the directory and its contents.
tempdir.cleanup()
或者,根据项目的可行性,使用上下文管理器。
import tempfile
with tempfile.TemporaryDirectory() as tmpdirname:
# Write files in the directory...
# ...
# As soon as your exit this block, the directory is automatically cleaned up.
答案 1 :(得分:0)
os.remove()
用于文件,而不是目录。 os.rmdir()
用于删除目录,但仅用于删除目录。要删除目录及其内容,请使用shutil.rmtree()
。
import shutil
def infoReset():
shutil.rmtree("data/accounts/")