Hướng dẫn os python



Module os trong Python cung cấp các chức năng được sử dụng để tương tác với hệ điều hành và cũng có được thông tin liên quan về nó. OS đi theo các Module tiện ích tiêu chuẩn của Python. Module này cung cấp một cách linh động sử dụng chức năng phụ thuộc vào hệ điều hành.

Module os trong python cho phép chúng ta làm việc với các tập tin và thư mục.

Các hàm trong Module os được đưa ra dưới đây:

Hàm os.name

Hàm này cung cấp tên của Module os được import.

Hiện tại, nó đăng ký 'posix', 'nt', 'os2', 'ce', 'java' và 'riscos'. Ví dụ:

Kết quả:

Hàm os.getcwd()

Nó trả về thư mục làm việc hiện tại (CWD) của tệp.

import os
print(os.getcwd())

Kết quả:

E:\Python\workspace\py-test1\src\main

Hàm os.error

Hàm này xác định các lỗi cấp độ hệ điều hành. Nó ném ra lỗi OSError trong trường hợp tên và đường dẫn file không hợp lệ hoặc không thể truy cập, v.v.

import os
try:   
    # Nếu file không tồn tại. Nó sẽ ném ra một lỗi IOError   
    filename = 'Python.txt'   
    f = open(filename, 'rU')   
    text = f.read()    
    f.close()   
    
# Nếu có lỗi xảy ra câu lệnh bên trong IOError.được thực thi       
except IOError:   
    
    # print(os.error) will    
    print('Problem reading: ' + filename)

Kết quả:

Problem reading: Python.txt

Hàm os.popen()

Hàm này mở một tệp đến hoặc từ lệnh được chỉ định và nó trả về một đối tượng tệp được kết nối với một pipe.

import os
fd = "python.txt"

# popen() là tương đương với open()
file = open(fd, 'w')
file.write("Hello Python!")
file.close()
file = open(fd, 'r')
text = file.read()
print(text)

# popen() cung cấp cổng kết nối và truy cập file trực tiếp
file = os.popen(fd, 'w')
file.write("Hello Python!")

Kết quả:

Hàm os.close()

Hàm này dùng để đóng file.

import os
fr = "Python1.txt"
file = open(fr, 'r')
text = file.read()
print(text)
os.close(file)

Kết quả:

Traceback (most recent call last):
  File "E:\Python\workspace\py-test1\src\main\test.py", line 8, in 
    file = open(fr, 'r')
FileNotFoundError: [Errno 2] No such file or directory: 'Python1.txt'

Hàm os.rename

Trong hàm này, một tệp hoặc thư mục có thể được đổi tên bằng cách sử dụng hàm os.rename(). Người dùng có thể đổi tên tệp nếu nó có đặc quyền thay đổi tệp.

import os
fd = "python.txt"
os.rename(fd,'Python1.txt')

Kết quả:

Traceback (most recent call last):
  File "E:\Python\workspace\py-test1\src\main\test.py", line 9, in 
    os.rename(fd,'Python1.txt')   
FileNotFoundError: [WinError 2] The system cannot find the file specified: 'python.txt' -> 'Python1.txt'

Hàm os.access()

Hàm này sử dụng uid/gid thực để kiểm tra xem người dùng có quyền truy cập vào đường dẫn hay không.

import os   
import sys  
  
path2 = os.access("Python.txt", os.F_OK)   
print("File tồn tại:", path2)   
    
# Checking access with os.R_OK   
path2 = os.access("Python.txt", os.R_OK)   
print("Có quyền đọc file:", path2)   
    
# Checking access with os.W_OK   
path3 = os.access("Python.txt", os.W_OK)   
print("Có quyền ghi file:", path3)   
    
# Checking access with os.X_OK   
path4 = os.access("Python.txt", os.X_OK)   
print("Kiểm tra xem được file có được thực thi:", path4) 

Kết quả:

File tồn tại: False
Có quyền đọc file: False
Có quyền ghi file: False
Kiểm tra xem được file có được thực thi: False



Trong bài hướng dẫn này về  Module os của Lập trình không khó, chúng ta sẽ tìm hiểu về Module os và các phương thức của nó. Hơn nữa, chúng ta sẽ nghiên cứu cú pháp và ví dụ về Module os trong Ngôn ngữ lập trình Python.

Module là một module tích hợp sẵn với Python, module này cho phép chúng ta thao tác với tệp  và thư mục. Hãy cùng tìm hiểu về những tính năng và phương thức mà module os mang lại. Đầu tiên để sử dụng module os, hãy import module os  bằng lệnh import

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

['DirEntry','F_OK','MutableMapping','O_APPEND','O_BINARY','O_CREAT','O_EXCL',

'O_NOINHERIT','O_RANDOM', 'O_RDONLY','O_RDWR','O_SEQUENTIAL','O_SHORT_LIVED','O_TEMPORARY',

'O_TEXT','O_TRUNC','O_WRONLY','P_DETACH', 'P_NOWAIT','P_NOWAITO','P_OVERLAY','P_WAIT',

'PathLike','R_OK','SEEK_CUR','SEEK_END','SEEK_SET', 'TMP_MAX','W_OK','X_OK','_Environ',

'__all__','__builtins__','__cached__','__doc__','__file__', '__loader__','__name__',

'__package__','__spec__','_execvpe','_exists','_exit','_fspath','_get_exports_list',

'_putenv', '_unsetenv','_wrap_close','abc','abort','access','altsep','chdir','chmod',

'close','closerange', 'cpu_count','curdir','defpath','device_encoding','devnull','dup',

'dup2','environ','error','execl', 'execle','execlp','execlpe','execv','execve','execvp',

'execvpe','extsep','fdopen','fsdecode', 'fsencode','fspath','fstat','fsync','ftruncate',

'get_exec_path','get_handle_inheritable','get_inheritable','get_terminal_size', 'getcwd',

'getcwdb','getenv','getlogin','getpid','getppid','isatty','kill','linesep','link',

'listdir','lseek','lstat','makedirs','mkdir','name','open','pardir','path','pathsep',

'pipe', 'popen','putenv','read','readlink','remove','removedirs','rename','renames',

'replace','rmdir', 'scandir','sep','set_handle_inheritable','set_inheritable','spawnl',

'spawnle','spawnv','spawnve','st', 'startfile','stat','stat_result','statvfs_result',

'strerror','supports_bytes_environ','supports_dir_fd','supports_effective_ids',

'supports_fd', 'supports_follow_symlinks','symlink','sys','system','terminal_size','times',

'times_result','truncate','umask', 'uname_result','unlink','urandom','utime','waitpid',

'walk','write']

Tính ra thì cũng khá nhiều, tuy nhiên về thực tế thì chúng ta không cần nhớ hết tất cả các hàm, phương thức này. Bản thân tôi cũng chỉ thực sự làm việc với một vài hàm trong module os này, và hôm nay tôi sẽ giới thiệu chúng cho các bạn.

import os

print(os.getcwd())

# Tôi đang sử dụng IDLE của Python và file làm việc của tôi được lưu ở F:\Idle python

nênkếtqutrvca tôilàF:\Idle python

#in ra toàn bộ thư muc/tệp đang hiện hành

print(os.listdir())

#in ra tất cả các tệp/thư mục của đường dẫn được truyền vào, ở đây là ổ đĩa D

print(os.listdir("D:\\"))

Phương thức này sẽ duyệt qua hệ thống tệp. Tôi sẽ giải thích về hàm này thông qua ví dụ phía dưới.

import os

for(root,dirs,files)inos.walk('F:\\code',topdown=True):

    print(root)

    print(dirs)

    print(files)

    print('--------------------------------')

Kết quả:

F:\code

['test']

['a.py', 'hihi.txt']

--------------------------------

F:\code\sfdsd

[]

['Tài liệu Văn bản Mới.txt']

--------------------------------

os.walk() duyệt tệp trong cây thư mục bằng cách di chuyển cây từ trên xuống hoặc từ dưới lên. Đối với mỗi thư mục trong cây bắt nguồn từ đầu thư mục (bao gồm cả chính nó), nó mang lại một bộ 3 (dirpath, dirnames, namefile).

  • root: Chỉ: in ra các thư mục từ những gì bạn đã chỉ định.
  • dirs: in ra các thư mục con từ root.
  • files: in ra tất cả các tập tin từ thư mục gốc và thư mục.

Tham số topdown = True bạn có thể bỏ qua hoặc cho nó bằng False để duyệ từ dưới lên

import os

#xem thư mục đang làm việc hiện tại

print(os.getcwd())

os.chdir('F:\\code')

#xem lại sau khi đổi chúng ta đang ở đâu

print(os.getcwd())

Như vậy sau khi sử dụng os.chdir() chúng ta đã từ thư mục ban đầu là F:\Idle python sang F:\code.

import os

path='F:\\code'

#di chuyển đến thư mục đích

os.chdir(path)

print(os.listdir(path))

#tạo một thưu mục mới có tên là testdir

os.mkdir('testdir')

print(os.listdir(path))

['a.py','hihi.txt','sfdsd']

['a.py','hihi.txt','sfdsd','testdir']

Module os cũng cung cấp cho chúng ta phương thức os.rmdir() để thực hiện việc xóa thư mục hiện tại

import os

path='F:\\code'

os.chdir(path)

print(os.listdir(path))

#Xóa thư mục có tên testdir mới tạo ở trên

os.rmdir('testdir')

print(os.listdir(path))

['a.py','hihi.txt','sfdsd','testdir']

['a.py','hihi.txt','sfdsd']

Trong bài viết này, chúng tôi đã tìm hiểu ngắn gọn về các phương thưc phổ biến khác nhau của module os . Chúng tôi cũng đã thấy một vài ví dụ ngắn gọn cho mỗi trường hợp. Điều quan trọng là phải hiểu rằng module os còn cung cấp nhiều phương thức khác hưu dụng hơn nữa.