it-swarm.com.ru

Аргументы Pycharm и sys.argv

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

Я попытался ввести аргументы в поле «Параметры скрипта» в меню «Выполнить»> «Редактировать конфигурацию» следующим образом:

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

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

Постскриптум Я на Ubuntu

59
YKY

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

Содержимое окна параметров скрипта: 

"file1.txt" "file2.txt"

Флаги интерпретатора:

-s

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

 enter image description here

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

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

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

['/Path/to/current/folder/test.py', 'file1.txt', 'file2.txt']
82
Jim Fasarakis Hilliard

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

Вы можете получить к нему доступ, нажав Select Run/Debug Configurations (слева от  enter image description here ) и переходя на Edit Configurations. A Gif предоставлено для ясности.

 enter image description here

50
tisaconundrum

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

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

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

"/media/paul/New Volume/Users/paul/Documents/spinmaster/*.png"
9
Paul Miller

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

4
Jan Bodnar

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

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

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

2
Rumela Saraswati

Добавьте следующее в начало вашего файла Python. 

import sys

sys.argv = [
    __file__,
    'arg1',
    'arg2'
]

Теперь вы можете просто щелкнуть правой кнопкой мыши скрипт Python.

1
Ahmed

Я считаю, что это включено даже в версии Edu. Просто нажмите правую зеленую кнопку со стрелкой (Выполнить) и выберите «Добавить параметры».

0
Py Learner

Это работает в версии edu для меня. Мне не нужно было указывать опцию -s в настройках интерпретатора.

 Pycharm parameters for running with command line

0
Awaa