0
我想通过在Python中通过命令行参数传递整数编辑文本文件。然而,我的代码不工作,有人能指出我错在哪里。通过Python中的命令行参数编辑文本文件
import sys, argparse
def main(argv=None):
if argv is None:
argv=sys.argv[1:]
p = argparse.ArgumentParser(description="Editing omnetpp.ini")
p.add_argument('arg1', action='store', default= 1, type=int, help="number of clients")
args = p.parse_args(argv)
n = args.arg1
f = open('C:\\Users\Abcd\Desktop\Omnet\omnetpp.ini', 'a')
for i in range(n):
f.write('*.voipClient['+str(i)+'].udpApp['+str(i)+'].destAddresses = "voipGateway"\n')
f.write('*.voipGateway.udpApp['+str(i)+'].destAddresses = "voipClient['+str(i)+']"\n')
f.close()
如果整数5通过命令行参数传递就应该添加下面的文本文件,行未发生 输出
*.voipClient[0].udpApp[0].destAddresses = "voipGateway"
*.voipGateway.udpApp[0].destAddresses = "voipClient[0]"
*.voipClient[1].udpApp[1].destAddresses = "voipGateway"
*.voipGateway.udpApp[1].destAddresses = "voipClient[1]"
*.voipClient[2].udpApp[2].destAddresses = "voipGateway"
*.voipGateway.udpApp[2].destAddresses = "voipClient[2]"
*.voipClient[3].udpApp[3].destAddresses = "voipGateway"
*.voipGateway.udpApp[3].destAddresses = "voipClient[3]"
*.voipClient[4].udpApp[4].destAddresses = "voipGateway"
*.voipGateway.udpApp[4].destAddresses = "voipClient[4]"
我以下步骤:
- 代码保存在test.py
- 从命令行C:\ Users \ Abcd \ Desktop> python test.py 5
如果这是所有模块的代码,我可以指出,您实际上并没有运行main函数。它已被定义但未被调用。在函数定义之后,在模块级添加函数调用:main()。 – 2012-08-09 10:21:34
'我的代码不工作':为什么? (它)做它应该做的事情是什么? – catchmeifyoutry 2012-08-09 10:22:41
你真的想在每次迭代中关闭文件吗? – 2012-08-09 10:25:09