Аргументи 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.