如何在Python脚本中调用cmd文件
这个Python脚本的功能是这样的。问题是如何在函数里调用外部的cmd文件呢?
- 首先,它会读取目录中的一个CSV文件。
- 然后,如果第六列的内容是'approved',就会调用一个外部的Windows脚本'TransferProd.cmd'。
.
def readCSV(x):
#csvContents is a list in the global scope that will contain lists of the
#items on each line of the specified CSV file
try:
global csvContents
file = open(csvDir + x + '.csv', 'r') #Opens the CSV file
csvContents = file.read().splitlines() #Appends each line of the CSV file to csvContents
#----------------------------------------------------------------------
#This takes each item in csvContents and splits it at "," into a list.
#The list created replaces the item in csvContents
for y in range(0,len(csvContents)):
csvContents[y] = csvContents[y].lower().split(',')
if csvContents[y][6] == 'approved':
***CALL TransferProd.cmd***
file.close()
return
except Exception as error:
log(logFile, 'An error has occurred in the readCSV function: ' + str(error))
raise
3 个回答
0
- 如果你不需要这个命令的输出结果,可以用:os.system(cmd)
更好的方法是使用:
from subprocess import Popen, PIPE proc = Popen(cmd, shell = True, close_fds = True) stdout, stderr = proc.communicate()
1
import os
os.system('TransferProd.cmd')
这个方法在Unix和Windows系统上都能用,因为它是把命令发送给了系统的命令行。虽然返回的结果可能会有一些不同,但大体上是可以的!你可以在这里查看详细信息。
4
看看这个subprocess
模块。
import subprocess
p = subprocess.Popen(['TransferProd.cmd'])
你可以指定输出或错误信息要去哪里(直接写入文件或者写入一个像文件的对象),还可以输入数据等等。