2013-04-10 24 views
8

Giả sử tôi có một tệp RegressionSystem.exe. Tôi muốn thực thi tệp này với đối số -config. Commandline nên như:cách chạy tệp exe với các đối số bằng cách sử dụng python

RegressionSystem.exe -config filename 

Tôi đã cố gắng như:

regression_exe_path = os.path.join(get_path_for_regression,'Debug','RegressionSystem.exe') 
config = os.path.join(get_path_for_regression,'config.ini') 
subprocess.Popen(args=[regression_exe_path,'-config', config]) 

nhưng nó đã không làm việc.

+3

Nó không hoạt động như thế nào? Thông báo lỗi là gì? –

Trả lời

2
os.system("/path/to/exe/RegressionSystem.exe -config "+str(config)+" filename") 

Nên hoạt động.

10

Bạn cũng có thể sử dụng subprocess.call() nếu muốn. Ví dụ,

import subprocess 
FNULL = open(os.devnull, 'w') #use this if you want to suppress output to stdout from the subprocess 
filename = "my_file.dat" 
args = "RegressionSystem.exe -config " + filename 
subprocess.call(args, stdout=FNULL, stderr=FNULL, shell=False) 

Sự khác biệt giữa callPopen là cơ bản mà call chặn trong khi Popen không phải là, với Popen cung cấp chức năng tổng quát hơn. Thông thường call là tốt cho hầu hết các mục đích, về cơ bản nó là một hình thức thuận tiện của Popen. Bạn có thể đọc thêm tại this question.

Các vấn đề liên quan