我是Python新手,正在尝试编写我的第一个程序。在
我要做的是修改windows tracert
命令输出,在输出上加上日期。在
c:\Python\Codes>more tr.py
import os
import time
print (time.strftime("\nDate: %d %B %Y"))
os.system('tracert')
c:\Python\Codes>tr.py 127.0.0.1
Date: 09 March 2018
Usage: tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout]
[-R] [-S srcaddr] [-4] [-6] target_name
Options:
-d Do not resolve addresses to hostnames.
-h maximum_hops Maximum number of hops to search for target.
-j host-list Loose source route along host-list (IPv4-only).
-w timeout Wait timeout milliseconds for each reply.
-R Trace round-trip path (IPv6-only).
-S srcaddr Source address to use (IPv6-only).
-4 Force using IPv4.
-6 Force using IPv6.
c:\Python\Codes>
但是,Python代码中的tracert
命令没有正确执行。在
这就是我所期待的。在
^{pr2}$请告诉我怎么修理这个。谢谢。在
您没有将python shell参数传递给
tracert
,因此Windowstracert
建议您提供一个参数(例如“127.0.0.1”)最简单的方法是更改您的代码以执行另外两个操作
sys
模块中有一个数组:sys.argv
,其中包含脚本参数。在tracert
。您可以将字符串连接与+
运算符一起使用。在这里有个简单的改变:
注意,我必须在tracert调用和参数之间添加一个空格。 我专门调用它是为了让您看到它,但您也可以只调用
'tracert '
,并在末尾加上空格。在这是在我的Mac上运行的(它有
^{pr2}$traceroute
,但想法是一样的):一个(稍微)更好的方法是使用
subprocess
:现在您不必在命令后添加空格。但是必须将命令及其所有参数作为数组中的元素提供给
subprocess.run()
。在在注:无对这些代码进行任何错误检查。如果不带参数运行
tr.py
,则会出现错误:相关问题 更多 >
编程相关推荐