আইপিথনের ম্যাজিক% পেস্ট কীভাবে কাজ করে?


95

আমি ইতোমধ্যে ইন্ডেন্টেড পাইথন কোড / পুরো ফাংশন এবং ক্লাসগুলি আইপিথনে অনুলিপি করতে চাই। আমি যতবার চেষ্টা করি ইন্ডেন্টেশনটি স্ক্রুযুক্ত হয় এবং আমি নিম্নলিখিত ত্রুটি বার্তাটি পাই:

IndentationError: unindent does not match any outer indentation level (<ipython-input-23-354f8c8be51b>, line 12)

If you want to paste code into IPython, try the %paste and %cpaste magic functions.


4
আমি জানি, এটি সম্ভবত ইতিমধ্যে স্ট্যাকওভারফ্লোতে রয়েছে তবে এটি 3 টি অনুসন্ধানের পরে খুঁজে পাওয়া যায় নি, তাই আমি নিজের সংস্করণটি যুক্ত করেছি।
ফ্রেমস্টার

উত্তর:


139

আপনি সরাসরি আইপিথনে অনুলিপি করতে পারবেন না। এই পদক্ষেপগুলি:

  1. আপনি আইপথিতে অনুলিপি করতে চান লাইনগুলি ক্লিপবোর্ডে অনুলিপি করুন
  2. %pasteআইপিথনে প্রবেশ করুন
  3. এন্টার চাপুন
  4. লাভ!

47
% পেস্টটির জন্য টিনকিটারের প্রয়োজন যদিও, আপনার যদি না থাকে তবে আরও ভাল বাজি% cpaste
yekta

61
আপনি আসলে আইপিথনে সরাসরি কোড অনুলিপি করতে পারেন: আপনাকে প্রথমে প্রবেশ করে অটো-ইন্ডেন্টেশন অক্ষম করতে হতে পারে %autoindent
এরিক হে লেবিগোট

ধন্যবাদ ইওল! আপনার জন্য +1
ফ্রেমেস্টার

5
ইন Ipython 5 আপনি শুধু কোড পেস্ট করতে পারেন। %pasteআর দরকার নেই। এই উত্তর পড়ুন ।
লেভন

4
এর আগে আপনার% এর দরকার নেই paste
শব্দসুগ্রহে

40

পদক্ষেপ সম্পর্কে একটি ব্যাখ্যা:

  • প্রথমে আপনার ক্লিপবোর্ডে লক্ষ্য রেখাগুলি অনুলিপি করুন।

  • আইপিথন প্রম্পটে টাইপ করুন:

    • টিনেটারে থাকলে: প্রবেশ করান %paste
    • অন্যথায়: প্রবেশ করুন %cpaste
  • (Ctrl-V) পেস্ট করুন এবং এন্টার টিপুন।

  • তারপরে টাইপ করে --এন্টার চাপুন।

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

In [1]: %cpaste
Pasting code; enter '--' alone on the line to stop or use Ctrl-D.
:for l in "Hello World":
:    print l,
:--
H e l l o   W o r l d

4
আপনার Ctrl-V করতে হবে না। শুধুমাত্র% পেস্ট টাইপ করুন এবং এন্টার টিপুন।
SEF

23

আইপিথন 5 হিসাবে আপনার কোনও ম্যাজিক কমান্ডের দরকার নেই, কেবল এটি পেস্ট করুন

আইপিথন 5

ধন্যবাদ prompt_toolkit, IPythonএখন সমর্থন করে:

  • টাইপ করার সাথে সাথে সিনট্যাক্স হাইলাইট করা
  • আসল মাল্টি-লাইন সম্পাদনা (উপরে এবং নীচে তীর কীগুলি লাইনগুলির মধ্যে সরানো)
  • ইনডেন্টেশন বা তত্ক্ষণাত কোড সম্পাদন না করে মাল্টি-লাইন পেস্ট করুন
  • আরও ভাল কোড সমাপ্তির ইন্টারফেস (আমরা আরও আরও উন্নত করার পরিকল্পনা করছি) mouseচ্ছিক মাউস সমর্থন

এই বিষয়ে আরও এখানে

ipythonসর্বশেষতম সংস্করণে আপগ্রেড করতে

pip install ipython --upgrade 

মাল্টি-লাইনগুলি পেস্ট করা এবং প্রতিটি লাইনে স্বয়ংক্রিয়ভাবে কোডটি কার্যকর করা সম্ভব?
এরিক ডুমিনিল

হ্যাঁ, কেবল কোডটি পেস্ট করুন এবং এন্টার টিপুন। আপনি যদি ডিবাগ করতে চান তবে% পিডিবি বা আইপিডিবি চেক আউট করুন। উদাহরণ
লেভন

এটি পাইথন রিপ্লেল, কোডের আউটপুটকেও সমর্থন করে >যা এই জাতীয় তিনটি চিহ্ন দিয়ে শুরু করে :>>> a = 1 + 2
ফ্লেম

এই সমস্ত সময় আমি% cpaste করছিলাম .. দুর্দান্ত!
গের্শন হারকিজেগ

4
আমি মনে করি এটি পরিবেশের উপর নির্ভর করে আপনি যেখান থেকে পেস্টিং করছেন এবং কীভাবে আপনি পেস্টিং করছেন? আমার সহকর্মী আমাদের লিনাক্স হোস্টে এসএসএইচ-তে উইন্ডোজ 10-এর কমান্ড প্রম্পটটি ব্যবহার করছে, সেখানে একটি ডকার পাত্রে আইপথনটি খোলে এবং ইতিমধ্যে ইন্টেন্টেড কোডটি ( ডান-ক্লিক করে ) পেস্ট করার চেষ্টা করে , এবং আইপিথন in.৮.০ তেও সে অতিরিক্ত ইন্ডেন্টেশন পায়। কমান্ড প্রম্পটের ডান ক্লিকের আচরণটি আমি যেভাবে বুঝতে পারি তা হ'ল এটি ক্লিপবোর্ডে যা আছে তা কেবল গ্রহণ করে এবং চরিত্র অনুসারে অক্ষরটিকে আউটপুট করে দেয় যেমন আপনি এটি টাইপ করছেন। সুতরাং আইপ্যাথনের কোনও তথ্য নেই যা আপনি বাস্তবে পেস্ট করছেন।
কাল

6

%paste প্রয়োজন Tkinter। আপনি যদি উবুন্টুতে থাকেন তবে আপনি এটি ইনস্টল করতে পারেন

sudo apt-get install python-tk

আপনি পাইথন 3 এ থাকলে

sudo apt-get install python3-tk

তারপরে আইপিথন পুনরায় চালু করুন এবং %pasteআপনার ক্লিপবোর্ড থেকে পেস্ট করতে ব্যবহার করুন ।


2

একটি দরকারী উত্তর মন্তব্যগুলিতে হারিয়ে গেছে, সুতরাং এটি অন্য দরকারী আইপাইথন যাদু ফাংশনের জন্য একটি রেফারেন্স যুক্ত করার পাশাপাশি এটি পুনঃস্থাপন করতে চেয়েছিল।

প্রথমে @ ইওল ​​যা বলেছে তা পুনরায় সেট করার জন্য, ওপির সমস্যা সমাধানের একটি উপায় হ'ল প্রথমে চালানো %autoindentএবং পেস্টটি চালিয়ে অটো-ইনডেন্টেশন বন্ধ করা (আপনি যদি %pasteঅবশ্যই ব্যবহার করছেন তবে প্রয়োজন নেই )।

এখানে ইতিমধ্যে যা আছে সেখানে আরও তথ্য যুক্ত করতে আইপিথনের আরও একটি দরকারী মোড %doctest_modeযা আপনাকে পেস্টের উদাহরণটি অনুলিপি করতে এবং ডক স্ট্রিং থেকে স্নিপেটগুলি পরীক্ষা করতে দেয়। এটি ইন্টারেক্টিভ পাইথন সেশন আউটপুট কার্যকর করতে দরকারী যা আপনি ডকুমেন্টেশন এবং অনলাইন ফোরামে খুঁজে পেতে পারতেন, প্রথমে প্রম্পট স্ট্রিংগুলি ছাড়াই।


1

পাইথন 3 এ থাকা উবুন্টু ব্যবহারকারীদের জন্য।

python-tkপাইথন 2 জন্য।

%pasteপাইথন 3 এ কাজ করতে , python3-tkপ্যাকেজটি ইনস্টল করুন :

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