2015-10-13 7 views
34

Я пытаюсь отладить скрипт, который принимает аргументы командной строки в качестве ввода. Аргументы - это текстовые файлы в том же каталоге. Скрипт получает имена файлов из списка sys.argv. Моя проблема в том, что я не могу запустить скрипт с аргументами в pycharm.Параметры Pycharm и sys.argv

Я попытался ввести аргументы в поле «Параметры сценария» в «Run»> меню «Изменить настройки», как так:

-s'file1.txt', -s'file2.txt' 

Но это не сработало. Как запустить скрипт с аргументами?

P.S. Я на Ubuntu

ответ

42

В PyCharm добавлены параметры в Script Parameters как вы это делали, но, они заключены в двойных кавычках"" и без указания интерпретатора флагов как -s. Эти флаги указаны в поле Interpreter options.

Параметры сценария содержимое коробки:

"file1.txt" "file2.txt" 

Interpeter флаги:

-s 

Или, визуально:

enter image description here

Затем, с помощью простого тестового файла для оценки:

if __name__ == "__main__": 
    import sys 
    print(sys.argv) 

Мы получаем параметры мы предоставили (с sys.argv[0] держит имя сценария, конечно):

['/Path/to/current/folder/test.py', 'file1.txt', 'file2.txt'] 
+0

Спасибо, сработало. Кроме того, оказывается, что я должен был использовать «quotes вместо». – YKY

+0

Да, мой плохой, позвольте мне указать, что в ответе для дальнейшей полноты. –

+2

Это было полезно; но для уточнения, мой скрипт python принимает два имени файла в качестве параметров, один для -r и один для -s (или обоих или один или ни один). Таким образом, параметры моего скрипта были указаны как [-p "prof_samples.txt" -r "resp_samples.txt"] без параметров интерпретатора. – hangzhouharry

7

В дополнение к ответу Джима (жаль не хватает респ очков, чтобы сделать комментарий), просто хотел бы отметить что аргументы, указанные в PyCharm do , а не, имеют специальные символы, экранированные, в отличие от того, что вы делали бы в командной строке. Таким образом, в то время как в командной строке вы могли бы сделать:

python mediadb.py /media/paul/New\ Volume/Users/paul/Documents/spinmaster/\*.png 

параметр PyCharm будет:

"/media/paul/New Volume/Users/paul/Documents/spinmaster/*.png" 
16

Ради других, которые интересно о том, как попасть в это окно. Вот так:

Доступ к этому значку можно получить, нажав на Select Run/Debug Configurations (слева от enter image description here) и перейдя на страницу Edit Configurations. A gif для четкости.

enter image description here

2

Первым параметром является имя скрипта, который вы хотите запустить. Начиная с второго параметра, это параметры, которые вы хотите передать из командной строки.Ниже приведен тестовый скрипт:

from sys import argv 

script, first, second = argv 
print "Script is ",script 
print "first is ",first 
print "second is ",second 

А вот как вы передаете входные параметры: «Путь к вашему сценарию», «Первый параметр», «Второй параметр»

Позволяет сказать, что путь к ваш скрипт /home/my_folder/test.py, выход будет как:

Script is /home/my_folder/test.py 
first is First Parameter 
second is Second Parameter 

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

1

Обратите внимание, что по неизвестной причине невозможно добавить аргументы командной строки в версию PyCharm Edu. Это можно сделать только в выпусках Professional и Community.

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