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


89

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

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

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

Але це не спрацювало. Як запустити скрипт з аргументами?

PS Я на Ubuntu

Відповіді:


107

У PyCharm параметри додаються так Script Parametersсамо, як і ви, але вони укладаються в подвійні лапки "" і без зазначення прапорців Interpreter типу -s. Ці прапори вказані у Interpreter optionsполі.

Зміст вікна Параметри сценарію:

"file1.txt" "file2.txt"

Інтерпетерські прапори:

-s

Або візуально:

введіть тут опис зображення

Потім, за допомогою простого тестового файлу для оцінки:

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

Ми отримуємо надані нами параметри ( sys.argv[0]звичайно, з назвою сценарію):

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

Дякую, це спрацювало. Крім того, виявляється, що я мав використовувати "" лапки замість "".
YKY

3
Це було корисно; але для уточнення, мій сценарій python бере як параметри два імена файлів, одне для -r та одне для -s (або обидва, або одне, або жодне). Тож мої параметри сценарію були вказані як [-p "prof_samples.txt" -r "resp_samples.txt"] без параметрів інтерпретатора.
Гаррі

2
Я думаю, що ця відповідь застаріла, бо її немаєscript parameters
tisaconundrum

@tisaconundrum після перевірки цього, чи можете ви сказати мені, яку версію PyCharm ви використовуєте? Я щойно завантажив останню версію (PyCharm Community Edition 2017.2.3 Build # PC-172.3968.37, побудовану 1 вересня 2017 р.) І все ще бачу цю Script parametersопцію.
Димитріс Фасаракіс Хілліард,

Після додавання значень параметрів натисніть кнопку ЗАСТОСУВАТИ або кнопку OK, щоб не запустити код. Якщо я зберігаю конфігурації і запускаю код, аргументи все ще не враховуються в Pycharm python code
Praveen L

75

Заради інших, хто задається питанням, як дістатися до цього вікна. Ось як:

Ви можете отримати доступ до цього, натиснувши Select Run/Debug Configurations(зліва від введіть тут опис зображення) і перейшовши до Edit Configurations. GIF надав для наочності.

введіть тут опис зображення


1
Короткий кліп був насправді корисним - дякую! Це те, що я ненавиджу в речах із графічним інтерфейсом. Це як полювання на писанку, тоді як ви просто вводите командний рядок.
Шанемайстер,

Це було корисніше, ніж найкраще із найкращих. Дякую!
Аакаш Басу,

12

На PyCharm Community або Professional Edition 2019.1+ :

  1. На панелі меню натисніть Виконати -> Редагувати конфігурації
  2. Додайте свої аргументи в текстове поле Параметри (наприклад file2.txt file3.txt, або --myFlag myArg --anotherFlag mySecondArg)
  3. Клацніть Застосувати
  4. Клацніть OK

11

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

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

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

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

5

Зверніть увагу, що з якоїсь невідомої причини неможливо додати аргументи командного рядка у версію PyCharm Edu. Це можна зробити лише у професійних та громадських виданнях.


3

Перший параметр - це назва сценарію, який потрібно запустити. Починаючи з другого параметра, це параметри, які ви хочете передати з командного рядка. Нижче наведено тестовий скрипт:

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

Додайте наступне у верхню частину вашого файлу Python.

import sys

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

Тепер ви можете просто клацнути правою кнопкою миші на сценарії Python.


1

Я вважаю, що він включений навіть у версію Edu. Просто клацніть правою кнопкою суцільну зелену кнопку зі стрілкою (Виконати) і виберіть "Додати параметри".


1

Це працює у версії edu для мене. Мені не потрібно було вказувати параметр -s у параметрах інтерпретатора.

Параметри Pycharm для роботи з командним рядком

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.