Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python操作系统故障_Python - Fatal编程技术网

Python操作系统故障

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>

我正在写一个程序,你需要输入一个文件的标题。如果要删除该文件,请使用命令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>
    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异常(如果愿意)。