โมดูล OS ใน Python ให้การเข้าถึงฟังก์ชันเฉพาะระบบสำหรับการจัดการกับระบบไฟล์ กระบวนการ ตัวกำหนดเวลา ฯลฯ คุณต้องเชี่ยวชาญระบบ Python OS สำหรับการเขียนแอปพลิเคชันที่จัดการกับปัญหาในโลกแห่งความเป็นจริง คู่มือนี้จะกล่าวถึงแนวคิดหลักบางประการและแสดงวิธีใช้คำสั่งระบบ Python
คุณสมบัติของ Python OS System
ระบบปฏิบัติการทำหน้าที่เป็นวิธีการโต้ตอบกับระบบปฏิบัติการพื้นฐานแบบพกพา เสนอการเข้าถึงชื่อไฟล์ อาร์กิวเมนต์บรรทัดคำสั่ง ตัวแปรสภาพแวดล้อม พารามิเตอร์กระบวนการ และลำดับชั้นของระบบไฟล์ควบคู่ไปกับฟังก์ชันอื่นๆ
โมดูลนี้ยังประกอบด้วยโมดูลย่อยสองโมดูล ได้แก่ โมดูล os.sys และโมดูล os.path คุณสามารถใช้ฟังก์ชันต่างๆ ที่มีให้โดยโมดูล OS เพื่อทำงานต่างๆ ได้มากมาย การใช้งานทั่วไปบางอย่างรวมถึงการรันคำสั่งเชลล์ การจัดการไฟล์และไดเร็กทอรี กระบวนการวางไข่ ฯลฯ
เริ่มต้นใช้งานโมดูลระบบปฏิบัติการ
วิธีที่ง่ายที่สุดในการสำรวจโมดูล OS คือการใช้ล่าม คุณสามารถนำเข้าโมดูลที่นั่นและใช้ฟังก์ชันของระบบโดยไม่ต้องเขียนซอร์สโค้ด คุณต้องติดตั้ง Python สำหรับสิ่งนี้ ดังนั้นไปข้างหน้าและติดตั้ง Python บนเครื่องของคุณ
ที่เกี่ยวข้อง: วิธีการติดตั้ง Python บน Ubuntu
เริ่มล่ามโดยพิมพ์ หลาม ในเทอร์มินัลหรือเชลล์คำสั่งของคุณ เมื่อเปิดแล้ว ให้นำเข้าโมดูล OS โดยใช้คำสั่งต่อไปนี้
วิธีตรวจจับกล้องที่ซ่อนอยู่ด้วยโทรศัพท์มือถือ
>>> import os
ตอนนี้คุณสามารถเข้าถึงฟังก์ชันต่างๆ ที่มีให้โดยโมดูล OS รวมถึง Python ระบบ สั่งการ. ตัวอย่างเช่น คุณสามารถกำหนดแพลตฟอร์มระบบโดยใช้คำสั่ง ชื่อ สั่งการ. ตัวอย่างด้านล่างแสดงวิธีการเรียกใช้คำสั่งระบบที่เปิดเผยโดยโมดูล OS
>>> os.name
ฟังก์ชันนี้จะตรวจสอบว่ามีโมดูลเฉพาะของระบบปฏิบัติการอยู่หรือไม่ และพิจารณาแพลตฟอร์มตามนั้น ใช้ uname ฟังก์ชันเพื่อรับข้อมูลโดยละเอียด
>>> os.uname()
คำสั่งนี้แสดงแพลตฟอร์มระบบที่แน่นอนควบคู่ไปกับสถาปัตยกรรมเครื่อง ข้อมูลรุ่นและรุ่น ใช้ getcwd ฟังก์ชันเพื่อดึงไดเร็กทอรีการทำงานปัจจุบัน
>>> os.getcwd()
คุณสามารถเปลี่ยนไดเร็กทอรีการทำงานได้อย่างง่ายดายโดยใช้คำสั่งระบบ Python chdir . ส่งตำแหน่งใหม่เป็นพารามิเตอร์สตริง
>>> os.chdir('/tmp')
NS mkdir การทำงานของโมดูล OS ทำให้การสร้างไดเร็กทอรีใหม่ตรงไปตรงมา นอกจากนี้ยังช่วยให้เราสร้างโฟลเดอร์แบบเรียกซ้ำ ซึ่งหมายความว่า Python จะสร้างไดเร็กทอรีที่ขาดหายไปทั้งหมดซึ่งเป็นพาเรนต์ไปยังไดเร็กทอรีลีฟ
>>> os.mkdir('new-dir')
ใช้ rmdir คำสั่งลบไดเร็กทอรีออกจากไดเร็กทอรีการทำงานของคุณ
>>> os.rmdir('new-dir')
ตัวอย่างคำสั่งระบบหลาม
คำสั่งระบบที่จัดเตรียมโดยโมดูล OS ช่วยให้โปรแกรมเมอร์สามารถรันคำสั่งเชลล์ได้ ตรวจสอบให้แน่ใจว่าได้กำหนดชื่อคำสั่งเป็นสตริง เมื่อคุณเรียกงูหลาม ระบบ คำสั่ง มันจะรันคำสั่งที่กำหนดใน subshell ใหม่
>>> cmd = 'date'
>>> os.system(cmd)
คุณสามารถเรียกใช้แอปพลิเคชันแบบสแตนด์อโลนอื่นๆ โดยใช้วิธีการเดียวกันนี้ ตัวอย่างต่อไปนี้รันโปรแกรมแก้ไขเทอร์มินัล nano จากเชลล์ Python ของคุณ
>>> cmd = 'nano'
>>> os.system(cmd)
ระบบ Python OS ยังส่งออกโค้ดส่งคืนสำหรับแต่ละคำสั่งที่ดำเนินการ ระบบ POSIX คืนค่า 0 สำหรับการดำเนินการที่สำเร็จและค่าที่ไม่ใช่ศูนย์เพื่อระบุปัญหา
คุณสามารถใช้ระบบปฏิบัติการใน Python เพื่อเรียกใช้อะไรก็ได้ที่คุณต้องการ ตัวอย่างเช่น หากโปรแกรมของคุณต้องการอ่านข้อมูลเวอร์ชันของโปรแกรมบนเครื่องผู้ใช้ คุณสามารถทำสิ่งต่อไปนี้
>>> cmd = 'gcc --version'
>>> os.system(cmd)
ตัวอย่างด้านล่างรันคำสั่งเชลล์อย่างง่ายที่สร้างไฟล์ใหม่ชื่อ users.txt และเติมข้อมูลโดยผู้ใช้ทั้งหมดที่เข้าสู่ระบบ โปรแกรม Python จำนวนมากทำสิ่งเหล่านี้
>>> os.system('users > test')
เรากำลังส่งชื่อคำสั่งไปยังระบบปฏิบัติการเป็นสตริง คุณสามารถใช้ได้ทุกประเภท คำสั่งเทอร์มินัลที่มีประโยชน์ วิธีเดียวกัน
>>> os.system('ping -c 3 google.com')
คุณสามารถใช้ กระบวนการย่อย เรียกร้องให้ดำเนินการคำสั่งระบบจาก Python สิ่งนี้มีประโยชน์เพิ่มเติมหลายประการ รวมถึงรันไทม์ที่เร็วขึ้น การจัดการข้อผิดพลาดที่ดีขึ้น การแยกวิเคราะห์เอาต์พุต และคำสั่ง piping shell เอกสารอย่างเป็นทางการของ Python ยังแนะนำให้เรียกกระบวนการย่อยผ่านโมดูลที่เก่ากว่าเช่น os.system และ os.spawn .
>>> import subprocess
>>> subprocess.run(['ping','-c 3', 'example.com'])
การจัดการไฟล์และไดเร็กทอรีผ่าน OS Module
เราได้แสดงวิธีสร้างไฟล์และไดเร็กทอรีอย่างง่ายโดยใช้โมดูล Python OS จะทำอย่างไรถ้าคุณต้องการสร้างโฟลเดอร์ที่ซ้อนกัน? ระบบปฏิบัติการยังดูแลเรื่องนี้สำหรับเราโปรแกรมเมอร์ ตัวอย่างเช่น ตัวอย่างด้านล่างสร้างโฟลเดอร์ $HOME/test/root/api . นอกจากนี้ยังจะสร้างไดเร็กทอรีหลักที่จำเป็นหากไม่มี
>>> dirname = os.path.join(os.environ['HOME'], 'test', 'root', 'api')
>>> print(dirname)
>>> os.makedirs(dirname)
ก่อนอื่นเราดึงโฮมไดเร็กทอรีโดยใช้ เกี่ยวกับ แล้วเข้าร่วมชื่อโฟลเดอร์ผ่าน os.path.join . พิมพ์คำสั่งแสดงชื่อโฟลเดอร์และ makedirs สร้างมัน
เราสามารถดูไดเร็กทอรีใหม่โดยใช้ listdir วิธีการของโมดูล OS
>>> os.chdir(os.path.join(os.environ['HOME'], 'test', 'root', 'api'))
>>> os.system('touch file1 file2 file3')
>>> os.listdir(os.environ['HOME'])
คุณสามารถเปลี่ยนชื่อไดเร็กทอรี api ได้อย่างง่ายดายโดยใช้คำสั่ง เปลี่ยนชื่อ คำสั่งที่นำเสนอโดยโมดูล OS คำสั่งด้านล่างเปลี่ยนชื่อไดเร็กทอรี api นี้เป็น test-api
>>> os.rename('api', 'test-api')
ใช้ isfile และ ชื่อ ฟังก์ชันของ OS หากโปรแกรมของคุณต้องการตรวจสอบไฟล์หรือไดเร็กทอรีเฉพาะ
>>> os.path.isfile('file1')
>>> os.path.isdir('file1')
โมดูลระบบปฏิบัติการใน Python ยังช่วยให้นักพัฒนาสามารถแยกชื่อไฟล์และโฟลเดอร์ควบคู่ไปกับนามสกุลไฟล์ ตัวอย่างด้านล่างแสดงให้เห็นถึงการใช้ os.path.split และ os.path.splitext ในเรื่องนี้
>>> dir = os.path.join(os.environ['HOME'], 'test', 'root', 'api', 'file1.txt')
>>> dirname, basename = os.path.split(dir)
>>> print(dirname)
>>> print(basename)
ใช้โค้ดด้านล่างเพื่อแยกนามสกุลเช่น .txt หรือ .mp3 จากชื่อไฟล์
>>> filename, extension = os.path.splitext(basename)
>>> print(filename)
>>> print(extension)
การใช้งานอื่นๆ ของ Python OS System
โมดูล OS มีฟังก์ชันเพิ่มเติมมากมายสำหรับจัดการสิ่งต่างๆ เช่น กระบวนการของผู้ใช้และตัวกำหนดตารางเวลางาน ตัวอย่างเช่น คุณสามารถรับ UID (รหัสผู้ใช้) ของกระบวนการปัจจุบันได้อย่างรวดเร็วโดยใช้ปุ่ม เป็นสักขีพยาน การทำงาน.
>>> os.getuid()
>>> os.getgid()
NS getgid ฟังก์ชั่นส่งคืน ID กลุ่มของกระบวนการที่ทำงานอยู่ ใช้ getpid เพื่อรับ PID (รหัสกระบวนการ) และ getppid เพื่อรับรหัสกระบวนการหลัก
>>> os.getpid()
>>> os.getppid()
คุณยังสามารถใช้โมดูล OS เพื่อเปลี่ยนการอนุญาตของไฟล์และไดเร็กทอรีจากโปรแกรม Python ของคุณได้ ใช้ chmod หน้าที่ของ OS ที่จะทำสิ่งนี้
>>> os.chmod('file1.txt', 0o444)
คำสั่งนี้เปลี่ยนการอนุญาตของ file1.txt ถึง 0444 . ใช้ 0o444 แทน 0444 เพื่อให้แน่ใจว่าคำสั่งนั้นเข้ากันได้กับ Python ทั้งสองเวอร์ชันหลัก
ควบคุมพลังของ Python OS System
โมดูล OS ของ Python มีทุกสิ่งที่คุณต้องการเพื่อโต้ตอบกับระบบปฏิบัติการพื้นฐาน จำเป็นต้องมีความเข้าใจที่ชัดเจนเกี่ยวกับระบบปฏิบัติการสำหรับการเขียนโปรแกรมข้ามแพลตฟอร์มอย่างแท้จริง เราได้กล่าวถึงฟังก์ชันหลักบางส่วนที่โมดูลนี้จัดเตรียมไว้เพื่อช่วยคุณในการเริ่มต้น ลองใช้ด้วยตนเองและอย่าลืมปรับแต่งด้วย
แบ่งปัน แบ่งปัน ทวีต อีเมล วิธีสร้างและใช้งาน Tuples ใน Pythonพร้อมที่จะนำการเข้ารหัส Python ของคุณไปอีกระดับแล้วหรือยัง? ถึงเวลาทำความเข้าใจวิธีสร้างและใช้สิ่งอันดับ
อ่านต่อไป หัวข้อที่เกี่ยวข้อง- การเขียนโปรแกรม
- Python
Rubaiat เป็นผู้สำเร็จการศึกษา CS ที่มีความหลงใหลในโอเพ่นซอร์สอย่างมาก นอกเหนือจากการเป็นทหารผ่านศึก Unix แล้ว เขายังเป็นผู้เชี่ยวชาญด้านความปลอดภัยเครือข่าย การเข้ารหัส และการเขียนโปรแกรมเชิงฟังก์ชันอีกด้วย เขาเป็นนักสะสมหนังสือมือสองและชื่นชอบดนตรีร็อคคลาสสิกอย่างไม่สิ้นสุด
เพิ่มเติมจาก Rubaiat Hossainสมัครรับจดหมายข่าวของเรา
เข้าร่วมจดหมายข่าวของเราสำหรับเคล็ดลับทางเทคนิค บทวิจารณ์ eBook ฟรี และดีลพิเศษ!
คลิกที่นี่เพื่อสมัครสมาชิก