Ошибка при использовании argv

1

Я изучаю 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')

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

PS Ошибка, которую я получаю:

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

  • 1
    Пожалуйста, предоставьте полное сообщение об ошибке
Теги:
syntax-error
argv

3 ответа

2
Лучший ответ
script, filename = argv

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

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

  • 0
    Собственно, единственная проблема заключалась в том, что пользователь ошибался (я). Я интерпретировал то, что вы сказали там, как написать в сценарии. Совершенно неправильно, конечно. Я должен был написать это в командной строке. Большое спасибо за вашу помощь.
1

Код работает нормально, поместите код в пример в файл 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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню