Поместите аргумент в строку

Возможный дубликат:
Аргументы командной строки в Python

Я использую Python 3.2. То, что я хотел бы сделать, это в основном программа, которая экспортирует текст в файл.txt, например так:

[program name] "Hello World" /home/marcappuccino/Documents/Hello.txt

Я новичок, и я не знаю, как взять что-то среднее между двумя "" и поместить это в переменную. Это в sys.argv? Любая помощь приветствуется! Благодарю.

2 ответа

Решение

Да, это sys.argv, который содержит аргументы командной строки. Вы хотели бы что-то вроде:

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", и вы вызываете его так:

dostuff.py "Hello World 1" "Hello World 2" hello world three 

В итоге вы получите:

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 

Аргументы в кавычках считаются одним аргументом.

Я написал простую программу, чтобы продемонстрировать то, что, как я считаю, вам нужно. Вы должны добавить escape-символы во входные данные, чтобы взять кавычки как есть.

import sys

for i in range(0, len(sys.argv)):
    print sys.argv[i]

Выход:

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"
Другие вопросы по тегам