2016-12-21 6 views
-1

Я написал программу python, которая использует значения из текстовых файлов. Чтобы получить текстовые файлы, одним из требований является то, что он должен иметь возможность принимать путь к файлу в качестве аргумента в терминале. Я пытаюсь использовать:Как реализовать программу, которая принимает путь к файлу в качестве аргумента?

# -*- coding: utf-8 -*- 
import numpy 

x = str(input("Enter directory path: \n")) 
data = numpy.loadtxt(open(x), int) 

Однако, когда я запускаю программу в терминале, как это:

MBP:Game test$ python GameOfLife.py 
Enter directory path: 
/Users/test/Google Drive/Game.py 

Я получаю следующее сообщение об ошибке после этого.

Traceback (most recent call last): 
File "Game.py", line 5, in <module> 
x = str(input("Enter directory path\n")) 
File "<string>", line 1 
/Users/test/Google Drive/Game.py 
         ^
SyntaxError: invalid syntax 

Я новичок в python, поэтому любая помощь будет действительно замечательной.

+4

Вы уверены, что вы на Python 3.X? Это похоже на ошибку, которую вы получите с помощью 'input' на Python 2.X. – SethMMorton

+1

Вы не используете Python 3. Строка ввода получает 'eval'ed, что является поведением функции ввода()' Python 2. –

+3

Что именно означает «принять путь к файлу в качестве аргумента в терминале»? Предполагается ли пользователь запускать программу, а затем вводить путь или должен указывать путь при запуске программы, например. 'py Game.py путь/dir/file.py'? – TigerhawkT3

ответ

1

строка должна быть помещена в кавычки;

Попробуйте это:

"/Users/test/Google Drive/Game.py" 

Кроме того, вы можете использовать функцию raw_input вместо ввода. input функция запускает ваш входной текст как код python, но с raw_input вы можете вводить что угодно без каких-либо ограничений.

так что вы можете использовать

x = raw_input("Enter directory path: \n") 

вместо

x = str(input("Enter directory path: \n")) 
+0

Или они могут переключиться на 'raw_input' и вообще избежать безопасности« ввода ». – TigerhawkT3

+0

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

+0

В то время как технически это действительно решает проблему, никому не следует ожидать, чтобы он процитировал их ввод для использования программы. – SethMMorton

 Смежные вопросы

  • Нет связанных вопросов^_^