Подтвердить что ты не робот

Аргументы Пихарма и sys.argv

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

Я попытался ввести аргументы в поле "Script parameters" в меню "Выполнить" > "Редактировать конфигурацию":

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

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

P.S. Я на Ubuntu

4b9b3361

Ответ 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 (слева от enter image description here) и перейдя к 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+:

  1. В строке меню выберите "Выполнить" → "Редактировать конфигурации".
  2. Добавьте свои аргументы в текстовое поле Параметры (например, file2.txt file3.txt или --myFlag myArg --anotherFlag mySecondArg)
  3. Нажмите Применить
  4. Нажмите ОК