Mô-đun hệ điều hành trong Python với các ví dụ
Category: Python
Mô-đun OS trong Python cung cấp các hàm để tương tác với hệ điều hành. OS nằm trong các mô-đun tiện ích chuẩn của Python. Mô-đun này cung cấp một cách di động để sử dụng chức năng phụ thuộc vào hệ điều hành.
Các mô-đun os và os.path bao gồm nhiều chức năng để tương tác với hệ thống tập tin.
Các hàm Python-OS-Module
Ở đây chúng ta sẽ thảo luận về một số chức năng quan trọng của mô-đun hệ điều hành Python:
Xử lý thư mục làm việc hiện tại
Tạo một thư mục
Liệt kê các tập tin và thư mục bằng Python
Xóa thư mục hoặc tệp bằng Python
Xử lý thư mục làm việc hiện tại
Hãy coi Current Working Directory (CWD) là một thư mục, nơi Python đang hoạt động. Bất cứ khi nào các tệp chỉ được gọi theo tên của chúng, Python sẽ cho rằng nó bắt đầu trong CWD, điều này có nghĩa là tham chiếu chỉ theo tên sẽ chỉ thành công nếu tệp nằm trong CWD của Python.
Lưu ý: Thư mục nơi tập lệnh Python đang chạy được gọi là Thư mục hiện tại. Đây không phải là đường dẫn nơi tập lệnh Python nằm.
Lấy thư mục làm việc hiện tại
Để lấy vị trí của thư mục làm việc hiện tại, sử dụng os.getcwd() .
Ví dụ: Mã này sử dụng mô-đun ' để lấy và in thư mục làm việc hiện tại (CWD) của tập lệnh Python. Nó lấy CWD bằng cách sử dụng ' rồi in ra bảng điều khiển.os'os.getcwd()'
import os
cwd = os.getcwd()
print("Current working directory:", cwd)
Đầu ra:
Current working directory: /home/nikhil/Desktop/gfg
Để thay đổi thư mục làm việc hiện tại (CWD), phương thức os.chdir() được sử dụng. Phương thức này thay đổi CWD thành một đường dẫn được chỉ định. Nó chỉ lấy một đối số duy nhất làm đường dẫn thư mục mới.
Lưu ý: Thư mục làm việc hiện tại là thư mục mà tập lệnh Python đang hoạt động.
Ví dụ: Mã kiểm tra và hiển thị thư mục làm việc hiện tại (CWD) hai lần: trước và sau khi thay đổi thư mục lên một cấp bằng cách sử dụng . Mã cung cấp một ví dụ đơn giản về cách làm việc với thư mục làm việc hiện tại trong Python. os.chdir('../')
import os
def current_path():
print("Current working directory before")
print(os.getcwd())
print()
current_path()
os.chdir('../')
current_path()
Đầu ra:
Current working directory before
C:\Users\Nikhil Aggarwal\Desktop\gfg
Current working directory after
C:\Users\Nikhil Aggarwal\Deskto
Tạo một thư mục
Có nhiều phương pháp khác nhau có sẵn trong mô-đun OS để tạo thư mục. Đó là –
os.mkdir()
os.makedirs()
Sử dụng os.mkdir()
Bằng cách sử dụng phương thức os.mkdir() trong Python được dùng để tạo một thư mục có tên là path với chế độ quyền truy cập được chỉ định. Phương thức này gây ra FileExistsError nếu thư mục được tạo đã tồn tại.
Ví dụ: Đoạn mã này tạo ra hai thư mục: "GeeksforGeeks " trong thư mục "D:/Pycharm projects/" và "Geeks" trong thư mục "D:/Pycharm projects" .
Thư mục đầu tiên được tạo bằng os.mkdir() phương pháp này mà không chỉ định chế độ.
Thư mục thứ hai được tạo bằng phương pháp tương tự, nhưng cung cấp chế độ cụ thể ( ) để cấp quyền đọc và ghi.0o666
Sau đó, mã sẽ in ra thông báo cho biết các thư mục đã được tạo.
import os
directory = "GeeksforGeeks"
parent_dir = "D:/Pycharm projects/"
path = os.path.join(parent_dir, directory)
os.mkdir(path)
print("Directory '% s' created" % directory)
directory = "Geeks"
parent_dir = "D:/Pycharm projects"
mode = 0o666
path = os.path.join(parent_dir, directory)
os.mkdir(path, mode)
print("Directory '% s' created" % directory)
Đầu ra:
Directory 'GeeksforGeeks' created
Directory 'Geeks' created
Sử dụng os.makedirs()
Phương thức os.makedirs() trong Python được sử dụng để tạo thư mục đệ quy. Điều đó có nghĩa là khi tạo thư mục con, nếu bất kỳ thư mục cấp trung gian nào bị thiếu, phương thức os.makedirs() sẽ tạo tất cả chúng.
Ví dụ: Mã này tạo hai thư mục, "Nikhil" và "c" , trong các thư mục cha khác nhau. Mã này sử dụng os.makedirs hàm để đảm bảo các thư mục cha được tạo nếu chúng không tồn tại.
Nó cũng thiết lập quyền cho thư mục "c" . Mã in ra các thông báo để xác nhận việc tạo các thư mục này
import os
directory = "Nikhil"
parent_dir = "D:/Pycharm projects/GeeksForGeeks/Authors"
path = os.path.join(parent_dir, directory)
os.makedirs(path)
print("Directory '% s' created" % directory)
directory = "c"
parent_dir = "D:/Pycharm projects/GeeksforGeeks/a/b"
mode = 0o666
path = os.path.join(parent_dir, directory)
os.makedirs(path, mode)
print("Directory '% s' created" % directory)
Đầu ra:
Directory 'Nikhil' created
Directory 'c' created
Liệt kê các tập tin và thư mục bằng Python
Có phương thức os.listdir() trong Python được sử dụng để lấy danh sách tất cả các tệp và thư mục trong thư mục được chỉ định. Nếu chúng ta không chỉ định bất kỳ thư mục nào, thì danh sách các tệp và thư mục trong thư mục làm việc hiện tại sẽ được trả về.
Ví dụ: Mã này liệt kê tất cả các tệp và thư mục trong thư mục gốc ("/") . Mã này sử dụng os.listdir hàm để lấy danh sách các tệp và thư mục trong đường dẫn đã chỉ định, sau đó in kết quả.
import os
path = "/"
dir_list = os.listdir(path)
print("Files and directories in '", path, "' :")
print(dir_list)
Files and directories in ' / ' :
['sys', 'run', 'tmp', 'boot', 'mnt', 'dev', 'proc', 'var', 'bin', 'lib64', 'usr',
'lib', 'srv', 'home', 'etc', 'opt', 'sbin', 'media']
Xóa thư mục hoặc tệp bằng Python
Mô-đun OS cung cấp các phương pháp khác nhau để xóa thư mục và tệp trong Python. Đây là -
Sử dụng os.remove()
Sử dụng os.rmdir()
Sử dụng phương thức os.remove()
Phương thức os.remove() trong Python được sử dụng để xóa hoặc loại bỏ đường dẫn tệp. Phương thức này không thể xóa hoặc loại bỏ thư mục. Nếu đường dẫn được chỉ định là thư mục thì OSError sẽ được phương thức này đưa ra.
Ví dụ: Giả sử các tập tin có trong thư mục là:
Mã này xóa tệp có tên "file1.txt" khỏi vị trí đã chỉ định "D:/Pycharm projects/GeeksforGeeks/Authors/Nikhil/". Mã này sử dụng hàm os.remove để xóa tệp tại đường dẫn đã chỉ định.
import os
file = 'file1.txt'
location = "D:/Pycharm projects/GeeksforGeeks/Authors/Nikhil/"
path = os.path.join(location, file)
os.remove(path)
Đầu ra:
Sử dụng os.rmdir()
Phương thức os.rmdir() trong Python được sử dụng để xóa hoặc xóa một thư mục trống. OSError sẽ được đưa ra nếu đường dẫn được chỉ định không phải là một thư mục trống.
Ví dụ: Giả sử các thư mục là
Các hàm thường dùng
Sử dụng hàm os.name
Hàm này cung cấp tên của mô-đun phụ thuộc vào hệ điều hành được nhập . Các tên sau đây hiện đã được đăng ký: 'posix', 'nt', 'os2', 'ce', 'java' và 'riscos'.
import os
print(os.name)
Đầu ra:
posix
Lưu ý: Nó có thể cho kết quả khác nhau trên các trình thông dịch khác nhau, chẳng hạn như 'posix' khi bạn chạy mã ở đây.
Sử dụng hàm os.error
Tất cả các hàm trong mô-đun này sẽ đưa ra lỗi OSError trong trường hợp tên tệp và đường dẫn không hợp lệ hoặc không thể truy cập, hoặc các đối số khác có đúng kiểu nhưng không được hệ điều hành chấp nhận. os.error là một bí danh cho ngoại lệ OSError tích hợp sẵn.
Mã này đọc nội dung của tệp có tên 'GFG.txt' . Nó sử dụng khối ' try...except ' để xử lý các lỗi tiềm ẩn, đặc biệt là ' IOError ' có thể xảy ra nếu có sự cố khi đọc tệp.
Nếu xảy ra lỗi, nó sẽ in ra thông báo "Có vấn đề khi đọc: GFG.txt".
import os
try:
filename = 'GFG.txt'
f = open(filename, 'rU')
text = f.read()
f.close()
except IOError:
print('Problem reading: ' + filename)
Đầu ra:
Problem reading: GFG.txt
Sử dụng hàm os.popen()
Phương pháp này mở một đường ống đến hoặc từ lệnh. Giá trị trả về có thể được đọc hoặc ghi tùy thuộc vào chế độ là 'r' hay 'w' .
Cú pháp:
os.popen(command[, mode[, bufsize]])
Các tham số mode và bufsize không phải là các tham số cần thiết, nếu không được cung cấp, 'r' mặc định sẽ được lấy cho mode.
Mã này mở một tệp có tên 'GFG.txt' ở chế độ ghi, ghi "Hello" vào đó, sau đó đọc và in nội dung của tệp. Không khuyến khích sử dụng và các thao tác tệp chuẩn được sử dụng cho các tác vụ này. os.popen
import os
fd = "GFG.txt"
file = open(fd, 'w')
file.write("Hello")
file.close()
file = open(fd, 'r')
text = file.read()
print(text)
file = os.popen(fd, 'w')
file.write("Hello")
Đầu ra:
Hello
Lưu ý: Đầu ra của popen() sẽ không được hiển thị, sẽ có những thay đổi trực tiếp vào tệp.
Sử dụng hàm os.close()
Đóng mô tả tệp fd. Một tệp được mở bằng open(), chỉ có thể được đóng bằng close(). Nhưng tệp được mở thông qua os.popen(), có thể được đóng bằng close() hoặc os.close() . Nếu chúng ta thử đóng một tệp được mở bằng open(), sử dụng os.close(), Python sẽ ném TypeError.
import os
fd = "GFG.txt"
file = open(fd, 'r')
text = file.read()
print(text)
os.close(file)
Đầu ra:
Traceback (most recent call last):
File "C:\Users\GFG\Desktop\GeeksForGeeksOSFile.py", line 6, in
os.close(file)
TypeError: an integer is required (got type _io.TextIOWrapper)
Lưu ý: Có thể không xảy ra lỗi tương tự do tệp không tồn tại hoặc quyền không được cấp.
Sử dụng hàm os.rename()
Một tệp old.txt có thể được đổi tên thành new.txt, sử dụng hàm os.rename() . Tên của tệp chỉ thay đổi nếu tệp tồn tại và người dùng có đủ quyền để thay đổi tệp.
import os
fd = "GFG.txt"
os.rename(fd,'New.txt')
os.rename(fd,'New.txt')
Đầu ra:
Traceback (most recent call last):
File "C:\Users\GFG\Desktop\ModuleOS\GeeksForGeeksOSFile.py", line 3, in
os.rename(fd,'New.txt')
FileNotFoundError: [WinError 2] The system cannot find the
file specified: 'GFG.txt' -> 'New.txt'
Có một tên tệp "GFG.txt", do đó khi os.rename() được sử dụng lần đầu tiên, tệp sẽ được đổi tên.
Khi gọi hàm os.rename() lần thứ hai, tệp "New.txt" tồn tại chứ không phải "GFG.txt", do đó Python sẽ báo lỗi FileNotFoundError.
Sử dụng hàm os.remove()
Sử dụng mô-đun Os, chúng ta có thể xóa một tệp trong hệ thống bằng phương thức os.remove() . Để xóa một tệp, chúng ta cần truyền tên tệp làm tham số.
import os #Nhập mô-đun os.
os.remove("file_name.txt") #removing the file.
Mô-đun hệ điều hành cung cấp cho chúng ta một lớp trừu tượng giữa chúng ta và hệ điều hành.
Khi chúng ta làm việc với mô-đun os, hãy luôn chỉ định đường dẫn tuyệt đối tùy thuộc vào hệ điều hành, mã có thể chạy trên bất kỳ hệ điều hành nào nhưng chúng ta cần thay đổi đường dẫn chính xác. Nếu bạn cố gắng xóa một tệp không tồn tại, bạn sẽ nhận được FileNotFoundError .
Sử dụng hàm os.path.exists()
Phương pháp này sẽ kiểm tra xem một tệp có tồn tại hay không bằng cách truyền tên tệp làm tham số. Mô-đun OS có một mô-đun con có tên là PATH, sử dụng mô-đun này chúng ta có thể thực hiện nhiều chức năng hơn.
import os
#nhập module os
result = os.path.exists("file_name") #cung cấp tên tệp làm tham số.
print(result)
Đầu ra:
False
Như trong đoạn mã trên, tệp không tồn tại, nó sẽ cho kết quả False. Nếu tệp tồn tại, nó sẽ cho kết quả True.
Sử dụng hàm os.path.getsize()
Trong hàm os.path.getsize( ), python sẽ cung cấp cho chúng ta kích thước của tệp theo byte. Để sử dụng phương pháp này, chúng ta cần truyền tên tệp làm tham số.
import os #nhập module os
size = os.path.getsize("filename")
print("Size of the file is", size," bytes.")
Đầu ra:
Size of the file is 192 bytes.
Published on Jun 23, 2025