পাইচার্ম এবং sys.argv আর্গুমেন্ট


92

আমি কোনও স্ক্রিপ্ট ডিবাগ করার চেষ্টা করছি যা কমান্ড লাইন আর্গুমেন্টকে ইনপুট হিসাবে গ্রহণ করে। যুক্তিগুলি একই ডিরেক্টরিতে পাঠ্য ফাইল। স্ক্রিপ্ট sys.argv তালিকা থেকে ফাইলের নাম পায়। আমার সমস্যা হ'ল আমি পাইচার্মে যুক্তি দিয়ে স্ক্রিপ্টটি আরম্ভ করতে পারি না।

আমি "রান"> "কনফিগারেশন সম্পাদনা করুন" মেনুতে "স্ক্রিপ্টের প্যারামিটার" ফিল্ডে যুক্তিগুলি প্রবেশ করার চেষ্টা করেছি:

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

তবে এটি কার্যকর হয়নি। আমি কীভাবে আমার স্ক্রিপ্টটি যুক্তি দিয়ে চালু করব?

পিএস আমি উবুন্টুতে আছি

উত্তর:


111

পাইচার্মে প্যারামিটারগুলি আপনার 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']

ধন্যবাদ এটি কাজ করেছে। এছাড়াও এটি প্রমাণিত হয় যে আমার '' এর পরিবর্তে "" উক্তি ব্যবহার করা উচিত।
ওয়াইকেওয়াই

4
এটি সহায়ক ছিল; তবে স্পষ্ট করার জন্য, আমার অজগর স্ক্রিপ্ট দুটি ফাইলের নাম হিসাবে প্যারামিটার হিসাবে নেয়, একটি -r এর জন্য এবং একটির জন্য (অথবা উভয় বা এক বা উভয়)) সুতরাং আমার স্ক্রিপ্টের প্যারামিটারগুলি কোনও দোভাষী সংকেত ছাড়াই [-p "prof_sample.txt" -r "resp_sample.txt"] হিসাবে নির্দিষ্ট করা হয়েছিল।
হ্যারি

4
আমি মনে করি এই উত্তরটি script parameters
পুরানো হয়ে

এইটি যাচাই করার পরে @tisaconundrum, আপনি কি বলতে পারবেন যে আপনি পাইচার্মের কোন সংস্করণটি চালাচ্ছেন? আমি সবেমাত্র সর্বশেষ (পাইচর্ম সম্প্রদায় সংস্করণ 2017.2.3 ডাউনলোড করুন # পিসি-172.3968.37 বিল্ড করুন, 1 সেপ্টেম্বর, 2017 এ নির্মিত) এবং এখনও Script parametersবিকল্পটি দেখতে পাচ্ছি ।
দিমিত্রিস ফাসারাকিস হিলিয়ার্ড

প্যারামিটারের মানগুলি যুক্ত করার পরে, অ্যাপ্লিকেশন বা ঠিক আছে বোতামটি ক্লিক করে কোডটি চলছে না। যদি আমি কনফিগারেশনগুলি সংরক্ষণ করি এবং কোডটি চালিত করি, তবুও পাইচার্ম পাইথন কোডে যুক্তি বিবেচনা করা হয় না
প্রবীণ এল

78

অন্যদের জন্য যারা এই উইন্ডোতে পাবেন কীভাবে ভাবছেন। এখানে কীভাবে:

আপনি এটির Select Run/Debug Configurations(বাম দিকে এখানে চিত্র বর্ণনা লিখুন) ক্লিক করে এবং এতে গিয়ে অ্যাক্সেস করতে পারেন Edit Configurations। একটি জিআইএফ স্পষ্টতার জন্য সরবরাহ করা।

এখানে চিত্র বর্ণনা লিখুন


4
সংক্ষিপ্ত ক্লিপটি আসলে সহায়ক ছিল - আপনাকে ধন্যবাদ! আমি গুই জিনিস সম্পর্কে এটি ঘৃণা করি। এটি একটি ইস্টার ডিম শিকারের মতো যেখানে কমান্ড লাইন আপনি কেবল এটি টাইপ করেন
শ্যানিমিস্টার

এটি সেরা সেরা আপোভোটেডটির চেয়ে বেশি সহায়ক ছিল। ধন্যবাদ!
আকাশ বসু

13

পাইচার্ম সম্প্রদায় বা পেশাদার সংস্করণ 2019.1+ এ :

  1. মেনু বার থেকে রান -> কনফিগারেশন সম্পাদনা ক্লিক করুন
  2. প্যারামিটারের পাঠ্যবক্সে আপনার যুক্তি যুক্ত করুন (উদাহরণস্বরূপ file2.txt file3.txt, বা --myFlag myArg --anotherFlag mySecondArg)
  3. প্রয়োগ ক্লিক করুন
  4. ঠিক আছে ক্লিক করুন

11

জিম এর উত্তর ছাড়াও (দুঃখিত যথেষ্ট প্রতিনিধির পয়েন্ট একটি মন্তব্য করতে নয়), শুধু যে বাতলান আর্গুমেন্ট PyCharm উল্লেখিত না চেয়েছিলেন না বিশেষ অক্ষর, পলান আপনি কমান্ড লাইন কী করবেন অসদৃশ আছে। সুতরাং, আপনি যে কমান্ড লাইনে থাকবেন:

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

পাইচার্ম প্যারামিটারটি হ'ল:

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

5

লক্ষ্য করুন যে কোনও অজানা কারণে, পাইচার্ম এডু সংস্করণে কমান্ড লাইন যুক্তি যুক্ত করা সম্ভব নয়। এটি কেবল পেশাদার এবং সম্প্রদায় সংস্করণে করা যেতে পারে।


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

আশা করি এটি সাহায্য করবে কারণ ইনপুট পরামিতিগুলি কমা দ্বারা পৃথক করা হয়েছে তা নির্ধারণ করতে আমার কিছুটা সময় লেগেছে helps


2

আপনার পাইথন ফাইলের শীর্ষে নিম্নলিখিতটি যুক্ত করুন।

import sys

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

এখন, আপনি কেবল পাইথন স্ক্রিপ্টে ডান ক্লিক করতে পারেন।


1

আমি বিশ্বাস করি এটি এমনকি এডু সংস্করণে অন্তর্ভুক্ত রয়েছে। শক্ত সবুজ তীর বোতামটি (ডান) ক্লিক করুন এবং "পরামিতি যুক্ত করুন" নির্বাচন করুন।


1

এটি আমার জন্য এডু সংস্করণে কাজ করে। দোভাষীর বিকল্পগুলিতে আমার জন্য একটি -s বিকল্প নির্দিষ্ট করা প্রয়োজন ছিল না।

কমান্ড লাইনের সাথে চলার জন্য পাইচার্ম পরামিতি

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.