Ошибка при использовании argv - PullRequest
1 голос
/ 17 ноября 2011

Я изучаю Python, используя Learn Python The Hard Way . Это очень хорошо и эффективно, но однажды у меня произошел сбой. Я искал в Интернете, но не смог найти ответ. Вот мой вопрос:

Одно из упражнений скажет сделать это:

from sys import argv

script, filename = argv

и затем он приступает к выполнению вещей, которые я понимаю:

print "we are going to erase %r." % filename
print "if you don't want that, hit CTRL-C (^C)."
print "if you do want that, hit RETURN."

raw_input("?")

print "opening the file..." 
target = open(filename, 'w')

Что означает первая часть?

P.S. я получаю ошибку:

syntaxError Неожиданный символ после символа продолжения строки

Ответы [ 3 ]

2 голосов
/ 17 ноября 2011
script, filename = argv

Это распаковка последовательности argv. Первый элемент переходит в script, а второй - в filename. В общем, это можно сделать с помощью любой итерируемой, если в левой части точно столько же переменных, сколько элементов в итерируемой в правой части.

Код, который вы показываете, выглядит нормально, я не знаю, почему вы получаете синтаксическую ошибку там.

1 голос
/ 17 ноября 2011

Код работает нормально, поместите код в примере в codefile.py и передайте ему файл dummydata:

$ python codefile.py dummydatafile.txt 
 We're going to erase 'test1.txt'.
 If you don't want that, hit CTRL-C (^C).
 If you do want that, hit RETURN.
 ?
 Opening the file...
 Truncating the file. Goodbye!
 Now I'm going to ask you for three lines.
 line 1: 
 line 2: 
 line 3: 
 I'm going to write these to the file.
 And finally, we close it.
$

Это должно решить вашу проблему

1 голос
/ 17 ноября 2011

Unexpected character after line continuation character означает, что вы разбили команду на две строки, используя символ продолжения \ (см. этот вопрос ), но добавили после него несколько символов (например, пробел).

Но я не вижу \ в вашем коде ...

...