Pycharm और sys.argv तर्क


93

मैं एक स्क्रिप्ट को डीबग करने की कोशिश कर रहा हूं जो एक इनपुट के रूप में कमांड लाइन तर्क लेता है। तर्क एक ही निर्देशिका में पाठ फ़ाइलें हैं। स्क्रिप्ट को sys.argv सूची से फ़ाइल नाम मिलते हैं। मेरी समस्या यह है कि मैं स्क्रिप्ट को pycharm में तर्क के साथ लॉन्च नहीं कर सकता।

मैंने "स्क्रिप्ट पैरामीटर" फ़ील्ड में "रन"> "कॉन्फ़िगरेशन संपादित करें" मेनू में तर्कों को दर्ज करने की कोशिश की है:

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

लेकिन यह काम नहीं आया। मैं अपनी स्क्रिप्ट को तर्कों के साथ कैसे लॉन्च करूं?

PS मैं उबंटू में हूं

जवाबों:


112

PyCharm में पैरामीटर आपके द्वारा किए गए अनुसार जोड़े जाते हैंScript Parameters लेकिन, वे दोहरे उद्धरण चिह्नों में संलग्न हैं "" और जैसे इंटरप्रेटर झंडे को निर्दिष्ट किए बिना -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']

धन्यवाद यह काम किया। इसके अलावा यह पता चला है कि मुझे '' के बजाय "" उद्धरणों का उपयोग करना चाहिए था।
वाईकेवाई

3
यह मददगार था; लेकिन स्पष्ट करने के लिए, मेरी अजगर स्क्रिप्ट दो फ़ाइल नामों को पैरामीटर के रूप में लेती है, एक -r के लिए और एक -s के लिए (या दोनों या एक या दोनों)। इसलिए मेरे स्क्रिप्ट पैरामीटर बिना किसी दुभाषिए के विकल्पों के साथ [-p "prof_samples.txt" -r "resp_samples.txt"] के रूप में निर्दिष्ट किए गए थे।
हैरी

2
मुझे लगता है कि इस सवाल का जवाब पुराना हो चुका है क्योंकि वहाँ कोईscript parameters
tisaconundrum

@tisaconundrum इसके साथ जांच करने के बाद, क्या आप मुझे बता सकते हैं कि आप PyCharm का कौन सा संस्करण चला रहे हैं? मैंने अभी नवीनतम (PyCharm सामुदायिक संस्करण 2017.2.3 बिल्ड # PC-172.3968.37, 1 सितंबर, 2017 को बनाया) डाउनलोड किया और अभी भी Script parametersविकल्प देखें ।
दिमित्री फासरकिस हिलियार्ड

पैरामीटर मानों को जोड़ने के बाद, APPLY या ओके बटन पर क्लिक करके कोड नहीं चलाएं। अगर मैं कॉन्फ़िगरेशन को सहेजता हूं और कोड चलाता हूं, तब भी Pycharm python कोड पर विचार नहीं किया जाता है
प्रवीण एल

78

दूसरों की खातिर जो सोच रहे हैं कि इस खिड़की को कैसे प्राप्त किया जाए। ऐसे:

आप इसे Select Run/Debug Configurations(बाईं ओर यहाँ छवि विवरण दर्ज करें) पर क्लिक करके और इस तक पहुँच सकते हैं Edit Configurations। स्पष्टता के लिए एक gif प्रदान किया गया।

यहाँ छवि विवरण दर्ज करें


1
छोटी क्लिप वास्तव में उपयोगी थी - धन्यवाद! मुझे गुई की बातों से नफरत है। यह ईस्टर अंडे के शिकार की तरह है, जबकि कमांड लाइन आप इसे सिर्फ टाइप करते हैं।
Shanemeister

यह सबसे अच्छे उत्थान की तुलना में अधिक सहायक था। धन्यवाद!
आकाश बसु

13

PyCharm समुदाय या व्यावसायिक संस्करण 2019.1+ पर :

  1. मेनू बार से Run -> एडिट कॉन्फ़िगरेशन को क्लिक करें
  2. पैरामीटर्स टेक्स्टबॉक्स में अपने तर्क जोड़ें (उदाहरण के लिए file2.txt file3.txt, या --myFlag myArg --anotherFlag mySecondArg)
  3. अप्लाई पर क्लिक करें
  4. ओके पर क्लिक करें

11

जिम के जवाब के अलावा (क्षमा करें, टिप्पणी करने के लिए पर्याप्त प्रतिनिधि नहीं हैं), बस यह बताना चाहता था कि पाइकर्म में निर्दिष्ट तर्कों में विशेष वर्ण नहीं हैं, इसके विपरीत कि आप कमांड लाइन पर क्या करेंगे। तो, जबकि कमांड लाइन पर आप क्या करेंगे:

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

अपनी पायथन फ़ाइल के शीर्ष पर निम्न जोड़ें।

import sys

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

अब, आप केवल पायथन स्क्रिप्ट पर राइट क्लिक कर सकते हैं।


1

मेरा मानना ​​है कि यह एडू संस्करण में भी शामिल है। बस ठोस हरे तीर बटन पर क्लिक करें (भागो) और "पैरामीटर जोड़ें" चुनें।


1

यह मेरे लिए edu संस्करण में काम करता है। दुभाषिया विकल्पों में -s विकल्प निर्दिष्ट करना मेरे लिए आवश्यक नहीं था।

कमांड लाइन के साथ चलने के लिए Pycharm पैरामीटर

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.