如何使用os模块屏蔽文件夹或文件

35 浏览
0 Comments

如何使用os模块屏蔽文件夹或文件

我怎样才能删除一个文件或文件夹?

admin 更改状态以发布 2023年5月24日
0
0 Comments

删除文件的Python语法

import os
os.remove("/tmp/.txt")

或者

import os
os.unlink("/tmp/.txt")

或者

Python版本 >= 3.4的pathlib

file_to_rem = pathlib.Path("/tmp/.txt")
file_to_rem.unlink()

Path.unlink(missing_ok=False)

Unlink方法用于删除文件或符号链接。

  • 如果missing_ok为false(默认值),则如果路径不存在,则会引发FileNotFoundError异常。
  • 如果missing_ok为true,则将忽略FileNotFoundError异常(与POSIX rm -f命令的行为相同)。
  • 从版本3.8开始:添加了missing_ok参数。

最佳实践

首先,检查文件或文件夹是否存在,然后再删除它。您可以通过两种方式实现这一点:

  1. os.path.isfile(“/path/to/file”)
  2. 使用异常处理

对于os.path.isfile例子

#!/usr/bin/python
import os
myfile = "/tmp/foo.txt"
# If file exists, delete it.
if os.path.isfile(myfile):
    os.remove(myfile)
else:
    # If it fails, inform the user.
    print("Error: %s file not found" % myfile)

异常处理

#!/usr/bin/python
import os
# Get input.
myfile = raw_input("Enter file name to delete: ")
# Try to delete the file.
try:
    os.remove(myfile)
except OSError as e:
    # If it fails, inform the user.
    print("Error: %s - %s." % (e.filename, e.strerror))

相应的输出

输入要删除的文件名:demo.txt
错误:demo.txt - 没有这样的文件或目录。
输入要删除的文件名:rrr.txt
错误:rrr.txt - 操作不允许。
输入要删除的文件名:foo.txt

删除文件夹的Python语法

shutil.rmtree()

shutil.rmtree()的示例

#!/usr/bin/python
import os
import sys
import shutil
# Get directory name
mydir = raw_input("Enter directory name: ")
# Try to remove the tree; if it fails, throw an error using try...except.
try:
    shutil.rmtree(mydir)
except OSError as e:
    print("Error: %s - %s." % (e.filename, e.strerror))

0
0 Comments

Python 3.4+pathlib 模块中的 Path 对象也暴露了这些实例方法:

0