python - 使用rm命令删除文件

标签 python file delete-file

我想确保我删除了所需的文件。 我有类似的代码

dir="/some/path/"
file = "somefile.txt"
cmd_rm= "rm -rf "+dir + file
os.system(cmd_rm)

dirfile 值是从数据库中获取的。我怎样才能确保我永远不会结束运行 rm -rf/

在执行 rm -rf 之前我应该​​检查什么?

最佳答案

如果您只想删除单个文件,请不要使用 -r 开关。此外,文件名中可能有空格。

最好使用 Python 的 os 中的函数模块代替:

dirname = "/some/path/"
filename = "somefile.txt"
pathname = os.path.abspath(os.path.join(dirname, filename))
if pathname.startswith(dirname):
   os.remove(pathname)

abspath 规范化路径并将其与目标目录进行比较可避免使用诸如“../../../etc/passwd”或类似名称的文件名。

关于python - 使用rm命令删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2271453/

相关文章:

python - list[-1 :][0] and list[len(list)-1]? 之间有什么区别

file - 有没有办法像 Emacs Ctrl-L 一样在光标上居中文件,但在 IntelliJ 中?

ios - 在 iOS 上删除包含大量文件的文件夹的性能

python - 使用 Pyinstaller 2.0、PySide 1.1.2 绑定(bind)和 Qt 4.8 时如何在应用程序中包含图标

python - Django 模型 - SELECT DISTINCT(foo) FROM 表太慢

python - sqlalchemy 中使用反射和声明性语法的一对多关系定义给出了连接条件错误

swift - Swift 中最快的逐字符读取器是什么

c++ - 如何在 C/C++ 中读取未知维度的数据文件

git - 在 GIT 中撤消删除