Python操作系统故障
我正在写一个程序,你需要输入一个文件的标题。如果要删除该文件,请使用命令ss“rm name_of_file”。 这是我的密码:Python操作系统故障,python,Python,我正在写一个程序,你需要输入一个文件的标题。如果要删除该文件,请使用命令ss“rm name_of_file”。 这是我的密码: import os title = raw_input("What Will Your Title Be? ") os.system("rm", title) 正如你可能想象的那样,这只是我正在编写的程序的一小部分。 我得到的错误是: File "./texts.py", line 1446, in <module>
import os
title = raw_input("What Will Your Title Be? ")
os.system("rm", title)
正如你可能想象的那样,这只是我正在编写的程序的一小部分。
我得到的错误是:
File "./texts.py", line 1446, in <module>
os.system("rm", title)
TypeError: system() takes exactly 1 argument (2 given)
文件“/text.py”,第1446行,在
操作系统(“rm”,标题)
TypeError:system()正好接受1个参数(给定2个)
我可能只是用词有误,一些反馈可能会有帮助:)逗号将其分为两个参数,因此您会得到该错误,因为该函数只接受一个参数。更改它,以便将其添加到同一字符串中,从而只提交一个参数使其工作:
os.system("rm "+title)
这将是非常困难的安全实施。考虑某人类型<代码> -Rf/< /Cord>作为删除文件名时的情况。我建议使用
os.unlink
功能:
>>> import os
>>> os.unlink('-rf /')
...
OSError: [Errno 2] No such file or directory: '-rf /'
这是一个危险的行动,你自己尝试。让标准库为您完成繁重的工作。您为什么不这样做呢
if os.path.isfile(title):
os.remove(title)
反馈:阅读错误;你可能会想到。我的标题是
-rf/
。在生产之前,请考虑其影响。谢谢它工作得很好!那是在我发布这篇文章五分钟后。非常感谢您的快速反馈:)@user3470203在这种情况下,如果我已经解决了您的问题,请回答。这两条线之间存在竞争条件。更好的方法是:盲目地os.删除(title)
并捕获OSError异常(如果愿意)。