Hướng dẫn os.system trong python
Vietnamese (Tiếng Việt) translation by Dai Phong (you can also view the original English article) Show Unix là một hệ điều hành được phát triển vào khoảng năm 1969 tại AT & T Bell Labs bởi Ken Thompson và Dennis Ritchie. Có nhiều lệnh Unix thú vị mà chúng ta có thể sử dụng để thực hiện các nhiệm vụ khác nhau. Câu hỏi đặt ra là, chúng ta có thể sử dụng các lệnh như vậy trực tiếp trong một chương trình Python được không? Đây là những gì tôi sẽ giới thiệu với bạn trong hướng dẫn này. Lệnh Unix Traceback (most recent call last): File "test.py", line 1, in Điều này cho thấy rằng trình biên dịch của Python xem os.system()Một giải pháp cho vấn đề này là sử dụng Như đã đề
cập trong tài liệu hướng dẫn, Thực thi lệnh (một chuỗi) trong một shell con. Điều này được thực hiện bằng cách gọi hàm system tiêu chuẩn của ngôn ngữ C, và có những hạn chế tương tự. Như vậy, chúng ta có thể chạy lệnh import os os.system('ls') Điều này sẽ trả về danh sách các tập tin trong thư mục hiện tại của bạn, đó là nơi chứa chương trình Hãy lấy một ví dụ khác. Nếu bạn muốn trả về ngày và giờ hiện tại, bạn có
thể sử dụng lệnh lệnh import os os.system('date') Trong trường hợp của tôi, đây là kết quả mà tôi nhận được từ script trên:
call()Mặc dù Thực thi lệnh được mô tả bởi args. Chờ cho lệnh thực thi xong, sau đó trả về thuộc tính returncode. Nếu chúng ta muốn chạy lệnh from subprocess import call call('ls') Hãy xem làm thế nào chúng ta có thể trả về ngày bằng mô-đun import subprocess time = subprocess.Popen('date', stdout=subprocess.PIPE, stderr=subprocess.PIPE) output, err = time.communicate() print 'It is', output Ví dụ ở trên có thể được chạy đơn giản hơn bằng cách sử dụng import subprocess time = subprocess.check_output('date') print 'It is', time Đầu ra của script ở trên là:
Các ví dụ ở trên cho thấy tính linh hoạt trong việc sử dụng các hàm khác nhau của Tóm tắtNhư chúng ta đã thấy trong hướng dẫn này, các lệnh Unix có thể được gọi và thực thi bằng mô-đun 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.nameHà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.errorHà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 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.renameTrong 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 |