我对子进程非常不满意。 我的底线,subprocess.call有问题,让源和目标变量起作用。
import subprocess, argparse
parser = argparse.ArgumentParser()
parser.add_argument("-t", '--path_to_torfs', type=str)
parser.add_argument("-w", '--path_to_wips', type=str)
parser.add_argument("-n", '--number_in_each_wip', type=str)
args = parser.parse_args()
source = args.path_to_torfs
destination = args.path_to_wips
subprocess.call(['sudo', 'mv', '`ls %s -v1 | head -2`', '%s' % (source, destination)])
我的错误是:
TypeError: not all arguments converted during string formatting
答案 0 :(得分:0)
在subprocess.call
中,您提供了4个字符串的列表,第3个字符串有一个占位符但没有参数,第4个字符串也有一个占位符和两个参数。
解决方案是提供适当位置的论据:
subprocess.call(['sudo', 'mv', '`ls %s -v1 | head -2`' % (source), '%s' % (destination)])