কম্পিউটার টিউটোরিয়াল

পাইথনে শেল পাইপলাইন ইন্টারফেস


পাইথন ব্যবহার করে ইউনিক্স কমান্ড পাইপলাইন মেকানিজম ব্যবহার করা। কমান্ড পাইপলাইনিং-এ একটি সিকোয়েন্স এক ফাইল থেকে অন্য ফাইলে কনভার্ট হয়।

এই মডিউল /bin/sh কমান্ড লাইন ব্যবহার করে। তাই আমাদের os.system() এবং os.popen() মেথড প্রয়োজন।

এই মডিউল ব্যবহার করতে হলে, আমাদের এটি ইম্পোর্ট করতে হবে -

import pipes

pipes Template ক্লাস ধারণ করে -

class pipes.Template

এই ক্লাস মূলত একটি পাইপলাইনের অ্যাবস্ট্রাকশন। এর বিভিন্ন মেথড রয়েছে। এগুলো নিচের মতো।

Template.reset() মেথড

এই মেথড পাইপলাইন টেমপ্লেটকে এর ইনিশিয়াল পজিশনে রিস্টোর করতে ব্যবহৃত হয়।

Template.clone() মেথড

এই মেথড আরেকটি নতুন এবং একই টেমপ্লেট অবজেক্ট তৈরি করতে ব্যবহৃত হয়।

Template.debug(flag) মেথড

এই মেথড প্রসেস ডিবাগ করতে ব্যবহৃত হয়। যখন ফ্ল্যাগ true, ডিবাগিং মোড অন। যখন অন, কম্যান্ডগুলো এক্সিকিউশনের সময় প্রিন্ট হবে।

Template.append(command, kind) মেথড

এই মেথড শেষে একটি নতুন টাস্ক ইনসার্ট করতে ব্যবহৃত হয়। কমান্ড অবশ্যই বোর্ন শেল কমান্ড হতে হবে। kind ভেরিয়েবল দুটি ক্যারেক্টার ধারণ করে।

প্রথম লেটারের জন্য, এর অর্থ -

Sr.No.Character & Description
1

‘–‘

কমান্ড স্ট্যান্ডার্ড ইনপুট পড়ে

2

‘f’

কমান্ড কমান্ড লাইনে একটি দেওয়া ফাইল পড়বে

3

‘.’

কমান্ড কোনো ইনপুট পড়ে না। তাই এটি প্রথম পজিশনে থাকবে।

দ্বিতীয় লেটারের জন্য, এর অর্থ -

Sr.No.Character & Description
1

‘–‘

কমান্ড স্ট্যান্ডার্ড আউটপুটে লেখে

2

‘f’

কমান্ড কমান্ড লাইনে একটি ফাইল লিখবে

3

‘.’

কমান্ড কোনো আউটপুট লিখে না। তাই এটি শেষ পজিশনে থাকবে।

Template.prepend(command, kind) মেথড

এই মেথড শুরুতে একটি নতুন টাস্ক ইনসার্ট করতে ব্যবহৃত হয়। কমান্ড অবশ্যই বোর্ন শেল কমান্ড হতে হবে। এটি append() মেথডের মতো।

Template.open(file, mode) মেথড

এই মেথড একটি ফাইল খুলতে ব্যবহৃত হয় পড়তে বা লেখতে। কিন্তু পড়া বা লেখার অপারেশন পাইপলাইন দ্বারা করা হয়।

Template.copy(infile, outfile) মেথড

এই মেথড ইনফাইল থেকে আউটফাইল কপি করতে ব্যবহৃত হয়, পাইপলাইন দ্বারা।

উদাহরণ কোড

import pipes
my_template = pipes.Template()
my_template.append('tr a-z A-Z', '--')
my_template.prepend('echo Python Programming', '--')  # কিউতে আইটেম প্রিপেন্ড
my_template.append('rev', '--')
my_template.debug(True)
my_file = my_template.open('test_file', 'w')
my_file.close()
content = open('test_file').read()
print(content)

আউটপুট

$ python3 example.py
echo Python Programming | tr a-z A-Z | rev >test_file
+ rev
+ tr a-z A-Z
+ echo Python Programming
GNIMMARGORP NOHTYP

  1. Python MySQL-এ commit() মেথড কী এবং এর ব্যবহার

  2. টکইন্টার (Tkinter) বাটনের কমান্ড মেথড ডাইনামিকভাবে পরিবর্তন করা

  3. পাইথন Tkinter-এ after মেথড

  4. পাইথন Tkinter-এ geometry মেথড