我正在为自己制作一个小的github脚本。我正在尝试使用参数调用call命令,然后将raw输入作为另一个参数。我不知道怎么开始。
file = raw_input("enter file name: ")
call(["command", "argument", "input here"])
如何添加合并原始输入?
答案 0 :(得分:3)
您似乎将字符串与字符串文字混淆。第一个是字符序列(实际上是Python中的字符串),而后者是在程序中编写这样一个字符串的方法。
所以
my ($original) = $text =~ m/$search/gi;
my $replace = "<span style='color:white;background-color:red'>$original</span>";
$text =~ s/$search/$replace/gi;
不包含任何实际报价。例如。长度为9,第一个字符foo = "my string"
为foo[0]
,依此类推。
m
返回一个字符串对象,所以如果它的内容应该被传递,你可以把你指定的变量带到&amp;并将其作为参数传递以创建一个列表,然后将其传递给子流程:
raw_input
对于您的实际用例,不要因为必须在shell中使用某些用例的引号而感到困惑,因为这些用例具有类似的用途。 shell用空格标记输入,所以
user_input = raw_input()
subprocess.check_call(["program", user_input])
将是 $ command arg1 arg2 arg3
的3个参数。但是如果你需要一个参数来包含空格(例如某些文件名中包含空格),你需要做
command
但是,Python子进程模块(除非你使用 $ command "my spaceful argument"
)没有遇到这个问题:你作为列表传递的参数会立即传递给子进程,而不需要引号。
答案 1 :(得分:0)
一个简单的解决方案是将raw_input放入您的通话中:
call(["command", "argument", raw_input("enter file name: ")])