Put an argument into a string
Possible Duplicate:
Command Line Arguments In Python
我使用的是python 3.2。我想做的基本上是一个将文本导出到.txt文件的程序,如下所示:
1
| [program name]"Hello World" /home/marcappuccino/Documents/Hello.txt |
我是一个新手,我不知道如何将whtever置于两者之间,并将其放入变量中。是在sys.argv里吗?感谢您的帮助!谢谢。
- "hello world"是我要保存的字符串,/home/marca…/hello.txt是我要在btw中保存的目录。
- 我不想创建帮助参数或与optparse有关的任何内容
是的,它是sys.argv,保存命令行参数。您需要类似的内容:
1 2
| string_to_insert = sys.argv[1]
file_to_put_string_in = sys.argv[2] |
这将把"hello world"分配给string_to_insert和/home/marcappuccino/documents/hello.txt分配给file_to_put_string_in。
假设您有一个名为"dostuff.py"的脚本,然后这样调用它:
1
| dostuff.py"Hello World 1""Hello World 2" hello world three |
你最终会得到的是:
1 2 3 4 5 6
| sys.argv[0] = dostuff.py (might be a full path, depending on the OS)
sys.argv[1] = Hello World 1
sys.argv[2] = Hello World 2
sys.argv[3] = hello
sys.argv[4] = world
sys.argv[5] = three |
引号中的参数被视为单个参数。
- 那么[1]和[2]是用空格分隔的词吗?如果是这样的话,那么如果USR把这样一个"hello world"而不是"helloworld"放在一个字符串上呢?
- 简陋的格式;见编辑过的答案。
- 但我不明白[]的做法。他们如何区分[1]和[2]3等?-它们是如何分开的?
- 如果您不理解[]的作用,我建议您从最基本的方面入手,阅读一些关于数组/列表的内容。
- 我理解,事实上我通过创建这个程序来学习。不管怎样,我认为在我发表评论之前你的最新消息还没有传给我。所以我只想知道,例如,当有空格或符号时,它们可能会停止。
- 例如,program hello world lol是sys.argv[1] =="hello"sys.argv[2] =="world"和sys.argv[3] =="lol"吗?
- 没错。
- 那么,您的示例是如何工作的呢?Sureley sys.argv[1]将是"你好,sys.argv[2]将是世界,sys.argv[3]将是1"?
- 参数由空格分隔。sys.argv的第一个元素始终是文件名(即sys.argv[0]),第二个元素是sys.argv[1]
- 参数是按空格拆分的,是的,但是[]的拆分是如何进行的?
- 在python中,切片似乎是[1]选择单词的第一个字符,[2]选择第二个字符等,[1:2]选择第一个和第二个字符之间的所有内容,但我不知道如何在类似这样的字符之间取任何内容。"
- 那么,我该如何做像usrtext = sys.argv["*"]这样的事情呢(星号是对两个引号中的内容的自动完成)?
- 你没有。sys.argv是一个列表。列表项通过其索引访问;即,sys.argv[0]是列表中的第一项,sys.argv[1]是列表中的第二项,等等。请参见:docs.python.org/library/stdttypes.html typesseq
我写了一个简单的程序来证明我相信你需要什么。您必须在输入中添加转义字符,才能按原样使用引号。
1 2 3 4
| import sys
for i in range(0, len(sys.argv)):
print sys.argv[i] |
输出:
1 2 3 4 5 6 7 8 9 10 11 12 13
| python testing.py a b c"abcd"
testing.py
a
b
c
abcd
python testing.py a b c "abcd"
testing.py
a
b
c
"abcd" |
- 谢谢,但是,我刚刚意识到argv是一个列表,现在我意识到答案1回答了我的问题!如果我能投赞成票,我会,但我是一个代表…