对于在终端中我说cd Desktop
你应该知道它会将你带到那个目录,但我如何在python中这样做但是使用带有raw_input("")
的桌面来选择我的命令?
答案 0 :(得分:1)
以下代码使用raw_input读取您的命令,并使用os.system()
执行它import os
if __name__ == '__main__':
while True:
exec_cmd = raw_input("enter your command:")
os.system(exec_cmd)
最诚挚的问候, 亚龙
答案 1 :(得分:1)
也许你可以这样做:
>>> import subprocess
>>> input = raw_input("")
>>> suprocess.call(input.split()) # for detail usage, search subprocess
有关详细信息,您可以搜索subprocess
模块
答案 2 :(得分:1)
要使用您的具体示例,您需要执行以下操作:
import os
if __name__ == "__main__":
directory = raw_input("Please enter absolute path: ")
old_dir = os.getcwd() #in case you need your old directory
os.chdir(directory)
我之前在我编写的一些目录维护函数中使用过这种技术并且它有效。如果你想更普遍地运行shell命令,你可以这样:
import subprocess
if __name__ == "__main__":
command_list = raw_input("").split(" ")
ret = subprocess(command_list)
#from here you can check ret if you need to
但请注意这种方法。这里的系统不知道它是否传递了有效命令,因此可能会失败并错过异常。更好的版本可能如下:
import subprocess
if __name__ == "__main__":
command_kb = {
"cd": True,
"ls": True
#etc etc
}
command_list = raw_input("").split(" ")
command = command_list[0]
if command in command_kb:
#do some stuff here to the input depending on the
#function being called
pass
else:
print "Command not supported"
return -1
ret = subprocess(command_list)
#from here you can check ret if you need to
此方法表示支持的命令列表。然后,您可以根据需要操作args列表以验证它是否是有效命令。例如,您可以检查您要使用的目录cd
是否存在,如果不存在则向用户返回错误。或者,您可以检查路径名是否有效,但仅在通过绝对路径连接时才能检查。