আইপিথন নোটবুকে আপনি কীভাবে আউটপুট দমন করবেন?


113

আউটপুট কীভাবে stdoutদমন করা যায়?

একটি আধা-কোলন উদাহরণস্বরূপ প্রত্যাবর্তিত অবজেক্টগুলির প্রদর্শন দমন করতে ব্যবহার করা যেতে পারে

>>> 1+1
2

>>> 1+1;   # No output!

তবে, স্টাডাউটকে মুদ্রণ করে এমন একটি ফাংশন আধা-কোলোন দ্বারা প্রভাবিত হয় না।

>>> print('Hello!')
Hello!

>>> MyFunction()
Calculating values...

থেকে আউটপুট কেমন print/ MyFunctionদমন করা?


অদ্ভুত কার্নেলের জন্য কেবল nil শেষ লাইন হিসাবে যুক্ত করুন
ফেনেসিম

উত্তর:


167

যোগ %%captureসেল প্রথম লাইন হিসাবে। যেমন

%%capture
print('Hello')
MyFunction()

এটি কেবল আউটপুটটিকে বাতিল করে দেয় তবে আউটপুটটিকে %%captureএকটি ভেরিয়েবলে সংরক্ষণ করতে ম্যাজিকটি ব্যবহার করা যেতে পারে - ডক্সের পরামর্শ নিন


2
যে কেউ%% ক্যাপচার এর বিপরীত কি জানেন? যেমন রয়েছে, আপনি কীভাবে কোনও কক্ষের মধ্যে %% ক্যাপচারটি বন্ধ করবেন, বা এটি ঘরটির শেষ অবধি সক্ষম?
ডেভিড পার্কস

2
জেনে রাখা ভাল জিনিসটি %%captureকেবলমাত্র কক্ষের শেষ অবধি সক্ষম থাকে এবং এটি অবশ্যই সেলে কোনও কোডের সামনে উপস্থিত থাকতে পারে। (সুতরাং এটি কোনও কক্ষের মধ্যে আবদ্ধ হওয়ার কোনও উপায় নেই appears)
আরেল

আইসিওয়াইএমআই, @ ডেভিড পার্কস এবং @ আরেলের আলোচনাটি এই পৃষ্ঠায় @ gwd2 এর উত্তর দ্বারা কভার করা হয়েছে with io.capture_output() as captured:আপনি কেবল সেই withপ্রসঙ্গে কী চালানো হচ্ছে তা ক্যাপচার করার জন্য কোনও ঘরের মধ্যে সূক্ষ্ম সুর করতে পারেন ।
ওয়েইন

নোট করুন এটি কেবল পাইথন কার্নেলগুলির জন্য কাজ করে (যেমন আর নয়)।
ম্যাক্স ঘেনিস

90

আউটপুট দমন করুন

;আউটপুট [ রেফারেন্স ] এর মুদ্রণ দমন করতে একটি লাইনের শেষে একটি রাখুন ।


4
এটি কোনও forলুপের ভিতরে কোনও কোডের জন্য নয় । কোন ধারনা? আমি কেবলমাত্র সমস্ত লাইনেই কোডটির নির্দিষ্ট লাইনগুলি থেকে আউটপুট দমন করতে চাই। ধন্যবাদ
হতবুদ্ধি

16

(ক্রেডিট: https://stackoverflow.com/a/23611571/389812 )

আপনি io.capture_output ব্যবহার করতে পারেন :

from IPython.utils import io

with io.capture_output() as captured:
    MyFunction()

দমন করার জন্য (উদাহরণস্বরূপ ক্যাপচার) স্টডআউট এবং স্টার্ডার এর মধ্যে সেই লাইনের জন্য with-statement


অনেক অনেক ধন্যবাদ, এটি আমাকে পাগল করে দিচ্ছিল - আমার একটি স্টার্টআপ ফাংশন রয়েছে যা আমি প্রতিবারই চালিত করি যখন আমি একটি নোটবুক খোলি যা কল করে %autosave, এবং এর আউটপুটটি দমন করতে চেয়েছিল। ভেবেছিলেন এটি সহজ হবে - তবে অদ্ভুতভাবে contextlib.redirect_stdoutএবং sys.stdout = open(os.devnull, 'w')উভয়ই ব্যর্থ হয় (অতিরিক্ত ফাঁকা লাইন প্রিন্ট করে শেষ করুন)। এটি গ্রহণযোগ্য উত্তর হওয়া উচিত।
লুক ডেভিস

1
এটি আমার প্রিয় উত্তর ছিল, কারণ একটি ঘরে সমস্ত আউটপুট কিছু দমন না করে কেউ দমন করতে পারে।
ওলপার্প্টিংগার

-5

যদি কেউ সমস্ত আউটপুট সাফ করতে আগ্রহী:

  1. সেলে যান
  2. সমস্ত আউটপুট যান

তারপরে আপনার পছন্দমতো বিকল্প বেছে নিন।

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