Аргументы Пихарма и sys.argv
Я пытаюсь отлаживать script, который принимает аргументы командной строки в качестве ввода. Аргументы - это текстовые файлы в том же каталоге. script получает имена файлов из списка sys.argv. Моя проблема в том, что я не могу запустить script с аргументами в pycharm.
Я попытался ввести аргументы в поле "Script parameters" в меню "Выполнить" > "Редактировать конфигурацию":
-s'file1.txt', -s'file2.txt'
Но это не сработало. Как запустить my script с аргументами?
P.S. Я на Ubuntu
Ответы
Ответ 1
В PyCharm параметры добавляются в Script Parameters
, как вы это делали, но заключены в двойные кавычки ""
и без указания флагов интерпретатора, например -s
. Эти флаги указаны в поле Interpreter options
.
Script Содержимое окна параметров:
"file1.txt" "file2.txt"
Флаги между вкладками:
-s
Или, визуально:
![введите описание изображения здесь]()
Затем, используя простой тестовый файл для оценки:
if __name__ == "__main__":
import sys
print(sys.argv)
Мы получаем параметры, которые мы предоставили (с sys.argv[0]
с сохранением имени script):
['/Path/to/current/folder/test.py', 'file1.txt', 'file2.txt']
Ответ 2
Ради других, которые задаются вопросом, как добраться до этого окна. Вот как:
Вы можете получить доступ к этому, щелкнув Select Run/Debug Configurations
(слева от
) и перейдя к Edit Configurations
. GIF предоставляется для ясности.
![enter image description here]()
Ответ 3
В дополнение к ответу Джима (извините, недостаточно комментариев, чтобы сделать комментарий), просто хотел указать, что аргументы, указанные в PyCharm, не имеют специальных символов, экранированных, в отличие от того, что вы делали бы в командной строке. Итак, в командной строке вы должны:
python mediadb.py /media/paul/New\ Volume/Users/paul/Documents/spinmaster/\*.png
параметр PyCharm:
"/media/paul/New Volume/Users/paul/Documents/spinmaster/*.png"
Ответ 4
Обратите внимание, что по какой-то неизвестной причине невозможно добавить аргументы командной строки в версии PyCharm Edu. Это может быть сделано только в Профессиональных и Общественных изданиях.
Ответ 5
Первый параметр - это имя script, которое вы хотите запустить. Начиная с второго параметра, это параметры, которые вы хотите передать из командной строки. Ниже приведен тест script:
from sys import argv
script, first, second = argv
print "Script is ",script
print "first is ",first
print "second is ",second
И вот как вы передаете входные параметры:
'Путь к вашим script', 'Первому параметру', 'Второй параметр'
Предположим, что путь к вашему script равен /home/my _folder/test.py, вывод будет выглядеть следующим образом:
Script is /home/my_folder/test.py
first is First Parameter
second is Second Parameter
Надеюсь, что это поможет, поскольку мне понадобилось время, чтобы определить входные параметры, разделенные запятыми.
Ответ 6
Добавьте следующее в начало вашего файла Python.
import sys
sys.argv = [
__file__,
'arg1',
'arg2'
]
Теперь вы можете просто щелкнуть правой кнопкой мыши скрипт Python.
Ответ 7
Я считаю, что это включено даже в версии Edu. Просто нажмите правую зеленую кнопку со стрелкой (Выполнить) и выберите "Добавить параметры".
Ответ 8
Это работает в версии edu для меня. Мне не нужно было указывать опцию -s в опциях интерпретатора.
![Pycharm parameters for running with command line]()
Ответ 9
На PyCharm CE 2019. 1+:
- В строке меню выберите "Выполнить" → "Редактировать конфигурации".
- Добавьте свои аргументы в текстовое поле Параметры (например,
file2.txt file3.txt
или --myFlag myArg --anotherFlag mySecondArg
) - Нажмите Применить
- Нажмите ОК