Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python เชื่อมต่อกับ Shell Pipelines


ในการใช้กลไกไปป์ไลน์คำสั่ง UNIX โดยใช้ python ในไพพ์ไลน์คำสั่ง ลำดับจะแปลงจากไฟล์หนึ่งเป็นอีกไฟล์หนึ่ง

โมดูลนี้ใช้บรรทัดคำสั่ง /bin/sh ดังนั้นเราจึงต้องใช้เมธอด os.system() และ os.popen()

ในการใช้โมดูลนี้ เราควรนำเข้าโดยใช้ −

import pipes

ท่อถือระดับแม่แบบ -

คลาสไปป์เทมเพลท

คลาสนี้เป็นนามธรรมของไปป์ไลน์ มันมีวิธีการที่แตกต่างกัน มีดังต่อไปนี้

เมธอด Template.reset()

วิธีนี้ใช้เพื่อกู้คืนเทมเพลตไปป์ไลน์ไปยังตำแหน่งเริ่มต้น

เมธอด Template.clone()

วิธีนี้ใช้เพื่อสร้างออบเจ็กต์เทมเพลตใหม่และเหมือนกัน

เมธอด Template.debug(flag)

วิธีนี้ใช้เพื่อดีบักกระบวนการ เมื่อแฟล็กเป็นจริง โหมดการดีบักจะเปิดขึ้น เมื่อเปิดใช้งาน คำสั่งจะถูกพิมพ์ระหว่างดำเนินการ

เมธอด Template.append(คำสั่ง ชนิด)

วิธีนี้ใช้เพื่อแทรกงานใหม่ในตอนท้าย คำสั่งต้องเป็นคำสั่งเชลล์ bourne ตัวแปรชนิดประกอบด้วยอักขระสองตัว

สำหรับอักษรตัวแรก หมายความว่า −

ซีเนียร์ ลักษณะ &คำอธิบาย
1

‘–‘

คำสั่งอ่านอินพุตมาตรฐาน

2

'f'

คำสั่งจะอ่านไฟล์ที่กำหนดในบรรทัดคำสั่ง

3

‘.’

คำสั่งไม่อ่านอินพุตใด ๆ ดังนั้นจะอยู่ที่ตำแหน่งแรก

สำหรับอักษรตัวที่สอง หมายความว่า

ซีเนียร์ ลักษณะ &คำอธิบาย
1

‘–‘

คำสั่งเขียนไปยังเอาต์พุตมาตรฐาน

2

'f'

คำสั่งจะเขียนไฟล์ในบรรทัดคำสั่ง

3

‘.’

คำสั่งไม่เขียนผลลัพธ์ใด ๆ มันจะอยู่ที่ตำแหน่งสุดท้าย

เมธอด Template.prepend(คำสั่ง ชนิด)

วิธีนี้ใช้เพื่อแทรกงานใหม่ที่จุดเริ่มต้น คำสั่งต้องเป็นคำสั่งเชลล์ bourne คล้ายกับวิธีการผนวก ()

เมธอด Template.open(ไฟล์ โหมด)

วิธีนี้ใช้เพื่อเปิดไฟล์เพื่ออ่านหรือเขียน แต่การอ่านหรือการเขียนนั้นทำโดยไปป์ไลน์

เมธอด Template.copy(infile, outfile)

วิธีนี้ใช้เพื่อคัดลอกจาก infile ไปยัง outfile โดยไพพ์ไลน์

โค้ดตัวอย่าง

import pipes
my_template = pipes.Template()
my_template.append('tr a-z A-Z', '--')
my_template.prepend('echo Python Programming', '--') #Prepend the item into queue
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