আইডিএল ইন্টারেক্টিভ শেল থেকে অজগর স্ক্রিপ্ট কীভাবে চালানো যায়?


104

আমি কীভাবে আইডিএল ইন্টারেক্টিভ শেল থেকে পাইথন স্ক্রিপ্টটি চালাব?

নিম্নলিখিতটি একটি ত্রুটি ছুড়ে ফেলে:

>>> python helloworld.py
SyntaxError: invalid syntax

দেখতে কেমন লাগে helloworld.py?
টেরিএ

হ্যাঁ এর অর্থ আপনার কোড পোস্টের সাথে কোডের কিছু ভুল আছে!
সিরিয়াল

12
না, অগত্যা নয়। সম্ভাবনা হ'ল ওপি python helloworld.pyএকটি আইডিএল শেল উইন্ডোতে টাইপ করছে এবং এটি কাজ করে না।
নেড ডিলি

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

আপনার প্রশ্নের উত্তর যদি সঠিকভাবে দেয় তবে আপনার নেড ডিলির কাছ থেকে উত্তরটি গ্রহণ করা উচিত। এটি সহ বিকাশকারীদের দ্রুত সঠিক উত্তরটি সন্ধান করতে সহায়তা করবে।
কৃষ্ণা ওজা

উত্তর:


147

পাইথন 3 :

exec(open('helloworld.py').read())

যদি আপনার ফাইল একই দির না থাকে:

exec(open('./app/filename.py').read())

গ্লোবাল / লোকাল ভেরিয়েবলগুলি পাস করার জন্য https://stackoverflow.com/a/437857/739577 দেখুন ।


অজানা পাইথন সংস্করণগুলিতে

পাইথন 2 বিল্ট-ইন ফাংশন: এক্সিকিফিল

execfile('helloworld.py')

এটিকে সাধারণত যুক্তি দিয়ে বলা যায় না। তবে এখানে একটি কার্যনির্বাহী:

import sys
sys.argv = ['helloworld.py', 'arg']  # argv[0] should still be the script name
execfile('helloworld.py')

২.6 থেকে অবহেলিত : পপেন

import os
os.popen('python helloworld.py') # Just run the program
os.popen('python helloworld.py').read() # Also gets you the stdout

যুক্তি সহ:

os.popen('python helloworld.py arg').read()

অগ্রিম ব্যবহার: সাবপ্রসেস

import subprocess
subprocess.call(['python', 'helloworld.py']) # Just run the program
subprocess.check_output(['python', 'helloworld.py']) # Also gets you the stdout

যুক্তি সহ:

subprocess.call(['python', 'helloworld.py', 'arg'])

বিশদ জন্য ডক্স পড়ুন :-)


এই বেসিক দিয়ে পরীক্ষিত helloworld.py:

import sys
if len(sys.argv) > 1:
    print(sys.argv[1])

4
আপনি কি দয়া করে কমান্ড লাইন আর্গুমেন্টের সাথে একটি উদাহরণ যুক্ত করতে পারেন।
ViFI

4
পাইথন
সানক্যাচার

যোগ করা হয়েছে execজন্য Python3
Hugues Fontenelle


24

আইডিএল শেল উইন্ডোটি টার্মিনাল শেলের মতো নয় (যেমন চলমান shবা bash)। বরং এটি পাইথন ইন্টারেক্টিভ ইন্টারপ্রেটারে থাকার মতোই python -i। আইডিএল-তে স্ক্রিপ্ট চালানোর সহজতম উপায় হ'ল আইডিএল সম্পাদক উইন্ডোতে আপনার স্ক্রিপ্ট ফাইলটি লোড করার Openজন্য Fileমেনু থেকে কমান্ডটি ব্যবহার করা (আপনি কোন প্ল্যাটফর্মের উপর নির্ভর করে এটি কিছুটা আলাদা হতে পারে) এবং তারপরে Run-> Run Moduleকমান্ডটি (শর্টকাট) ব্যবহার করুন এফ 5)।


4
তবে আপনি যুক্তি দিয়ে পাস করতে পারবেন না। :(
এরিকা কানে

4
দুর্ভাগ্যক্রমে, না, কমান্ড লাইন আর্গুমেন্টগুলি পাস করার সময় IDLE তে পাইথন ফাইল চালানো সহজ নয়। এটি করার জন্য আইডিএল -এর একটি দীর্ঘকালীন উন্মুক্ত সমস্যা রয়েছে ( বাগস.পিথন.অর্গ / বিসুক 6680০ )। পরীক্ষার জন্য একটি কার্যপ্রণালী হ'ল sys.argvপ্রোগ্রামের একেবারে শুরুতে ম্যানুয়ালি আরম্ভ করা, উদাহরণস্বরূপ, সাধারণ if __name__ == "__main__"বয়লারপ্লেটের অধীনে ।
নেড ডিলি

এই উত্তরটি স্পষ্ট করে যে আমরা আইডিএল শেল ব্যবহার করে পাইথন স্ক্রিপ্টটি কেন চালাতে পারি না। ধন্যবাদ @ নেডডিলি
আরশো

4
আইডিএল 3.7.4 হিসাবে, আপনি এখন আর্গুমেন্ট সহ একটি মডিউল চালাতে পারেন। নতুন Run-> Run with Customized...কমান্ড (শর্টকাট শিফট + এফ 5) ব্যবহার করুন এবং একটি পপআপ খোলা হবে যেখানে আপনি নিজের যুক্তি সরবরাহ করতে পারবেন। দুর্ভাগ্যক্রমে এটি এগুলিকে মনে রাখে না তাই আপনি প্রতিটি রান দিয়ে তাদের পেস্ট করবেন।
ড্যান নোলান


4

execFile('helloworld.py')আমার জন্য কাজ করে। একটি বিষয় লক্ষণীয় হ'ল .py ফাইলের সম্পূর্ণ ডিরেক্টরি নাম প্রবেশ করানো হয় যদি তা পাইথন ফোল্ডারে নিজে না থাকে (অন্ততপক্ষে এটি উইন্ডোজের ক্ষেত্রে হয়)

উদাহরণ স্বরূপ, execFile('C:/helloworld.py')



2

উদাহরণ স্বরূপ:

import subprocess

subprocess.call("C:\helloworld.py")

subprocess.call(["python", "-h"])

4
subprocess.call(r'c:\path\to\something.py')আমার জন্য কাজ করে না। OSError: [WinError 193]% 1 একটি বৈধ Win32 অ্যাপ্লিকেশন নয়
টেরি জন রেডি

এই আমদানি করুন ওএস আমদানি সাব-প্রসেস ডিআইআর = os.path.join ('সি: \\', 'ব্যবহারকারী', 'সের্গেই', 'ডেস্কটপ', 'এপিপি') সাবপ্রসেসক্ল্যাকাল (['পাইথন', ডিআইআর]] ব্যবহার করে দেখুন )
সের্গেই নসভ 17

1

পাইথন 3 এ নেই execFile। একটি execঅন্তর্নির্মিত ফাংশন ব্যবহার করতে পারেন , উদাহরণস্বরূপ:

import helloworld
exec('helloworld')

1

আইডলিতে নিম্নলিখিত কাজগুলি করে:

import helloworld

কেন এটি কাজ করে সে সম্পর্কে আমি বেশি কিছু জানি না, তবে এটি করে ..


আপনি যা করছেন তা হল মডিউলটি লোড করা যা শেল থেকে চলমান না। দুটির মধ্যে একটি পার্থক্য হ'ল: 1) আপনার মডিউলটির নাম নাম __ = ফাইলের নাম 2) মডিউল লোড করা হচ্ছে শেল মডিউল নাম _নম __ = " _মাইন " থেকে চালানো
তানভীর আলাম

প্রোগ্রামগুলি চালানোর পক্ষে এটি ভাল উপায় নয় কারণ আপনি আসলে আমদানি করছেন এবং এটি চালাচ্ছেন না। এর সামগ্রীগুলি আমদানি করা হবে এবং আপনি যদি সেগুলি ব্যবহার করতে না চান তবে তা অর্থহীন হবে।
অভিজিৎ.পি

1

পাইথন শেল যেমন আইডল বা জ্যাঙ্গো শেলের মধ্যে পাইথন স্ক্রিপ্ট চালানোর জন্য আপনি এক্সিকিউটি () ফাংশনটি ব্যবহার করে নিম্নলিখিতটি করতে পারেন। এক্সেক () একটি কোড অবজেক্ট আর্গুমেন্ট কার্যকর করে। পাইথনের একটি কোড অবজেক্টটি কেবল পাইথন কোড সংকলিত হয়। সুতরাং আপনাকে প্রথমে আপনার স্ক্রিপ্ট ফাইলটি সংকলন করতে হবে এবং তারপরে এক্সিকিউটিভ () ব্যবহার করে এটি সম্পাদন করতে হবে। আপনার শেল থেকে:

>>>file_to_compile = open('/path/to/your/file.py').read()
>>>code_object = compile(file_to_compile, '<string>', 'exec')
>>>exec(code_object)

আমি পাইথন ৩.৪ ব্যবহার করছি। বিস্তারিত তথ্যের জন্য সংকলন এবং এক্সিকিউট ডক্স দেখুন ।



1

আপনি এটি দুটি উপায়ে করতে পারেন

  • import file_name

  • exec(open('file_name').read())

তবে নিশ্চিত হয়ে নিন যে আপনার প্রোগ্রামটি যেখানে চলছে সেখানে ফাইলটি সংরক্ষণ করা উচিত


0

উইন্ডোজ পরিবেশে, আপনি নিম্নলিখিত সিনট্যাক্সের সাহায্যে পাইথন 3 শেল কমান্ড লাইনে পাই ফাইল সম্পাদন করতে পারেন:

এক্সিকিউট (খুলুন ('ফাইলের নামের নিখুঁত পথ')। পড়ুন ())

পাইথন শেল কমান্ড লাইন থেকে কীভাবে একটি সাধারণ হেলিওরল্ড.পি ফাইল চালানো যায় তা নীচে ব্যাখ্যা করা হয়েছে

ফাইলের অবস্থান: সি: / ইউজার / টেস্টুজার / টেস্টফোল্ডার / হেলোর্ল্ড.পি

ফাইল সামগ্রী: মুদ্রণ ("হ্যালো ওয়ার্ল্ড")

আমরা নীচের মতো পাইথন 3.7 শেলের উপর এই ফাইলটি কার্যকর করতে পারি:

>>> import os
>>> abs_path = 'C://Users/testuser/testfolder'
>>> os.chdir(abs_path)
>>> os.getcwd()
'C:\\Users\\testuser\\testfolder'

>>> exec(open("helloworld.py").read())
hello world

>>> exec(open("C:\\Users\\testuser\\testfolder\\helloworld.py").read())
hello world

>>> os.path.abspath("helloworld.py")
'C:\\Users\\testuser\\testfolder\\helloworld.py'
>>> import helloworld
hello world

এটি চালানোর জন্য কোনও প্রোগ্রাম আমদানি করা ভাল বিকল্প নয়। এমনকি আমি এটি শুরুতে ব্যবহার করেছি তবে এখন আমি সম্ভাব্য সমস্যাগুলি সম্পর্কে জানি যেমন এটি আপনার প্রোগ্রামের কার্যকারিতা কেড়ে নেয় কারণ আপনি এটি আমদানি করছেন (যদিও তুচ্ছ)।
অভিজিৎ.পি

0

আরও একটি বিকল্প রয়েছে (উইন্ডোজের জন্য) -

    import os
    os.system('py "<path of program with extension>"')

0

পাইথন কনসোলে, নিম্নলিখিত দুটি উপায়ে চেষ্টা করা যায়।

একই কাজ ডিরেক্টরিতে,

1. >> আমদানি হেলিওর্ল্ড

# আপনার যদি ভেরিয়েবল এক্স থাকে তবে আপনি এটি আইডিএল এ মুদ্রণ করতে পারেন।

>> heelorld.x

# যদি আপনার কোনও ফাংশন ফানক থাকে তবে আপনি এটিকেও এটি কল করতে পারেন।

>> helloworld.func ()

2. >> রানফাইল ("./ heelorld.py")

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