子进程中字符串变量的字符串转换问题
String conversion issue with string variable in subprocess
我对子流程很不满意。
我的底线有问题,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
在您的 subprocess.call
中,您提供了 4 个字符串的列表,第 3 个有一个占位符但没有参数,第 4 个也有一个占位符和两个参数。
解决方案是在适当的地方提供参数:
subprocess.call(['sudo', 'mv', '`ls %s -v1 | head -2`' % (source), '%s' % (destination)])
我对子流程很不满意。 我的底线有问题,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
在您的 subprocess.call
中,您提供了 4 个字符串的列表,第 3 个有一个占位符但没有参数,第 4 个也有一个占位符和两个参数。
解决方案是在适当的地方提供参数:
subprocess.call(['sudo', 'mv', '`ls %s -v1 | head -2`' % (source), '%s' % (destination)])