ในการใช้กลไกไปป์ไลน์คำสั่ง 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