如何在函数中合并raw_input作为参数

时间:2015-08-24 18:34:49

标签: python

我正在为自己制作一个小的github脚本。我正在尝试使用参数调用call命令,然后将raw输入作为另一个参数。我不知道怎么开始。

  file = raw_input("enter file name:  ")
  call(["command", "argument", "input here"])

如何添加合并原始输入?

2 个答案:

答案 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:  ")])