不要使用os.system()
; subprocess
绝对是要走的路。
但你的问题是你希望 Python 理解你想要插值args.fileread
成字符串。尽管 Python 很伟大,但它无法像那样读懂你的想法!
使用字符串格式代替:
os.system("rtl2gds -rtl={args.fileread} -rtl_top={args.module_name} -syn".format(args=args)
如果你想将文件名传递给另一个命令,你应该not使用FileType
类型选项!你想要一个文件名,not一个打开的文件对象:
parser.add_argument('fileread', help='Enter the file path')
但一定要使用subprocess.call()
代替os.system()
:
import subprocess
subprocess.call(['rtl2gds', '-rtl=' + args.fileread, '-rtl_top=' + args.module_name, '-syn'])
If rtl2gds
正确实现命令行解析,=
是可选的,您可以使用以下调用来代替,完全避免字符串连接:
subprocess.call(['rtl2gds', '-rtl', args.fileread, '-rtl_top', args.module_name, '-syn'])