Hướng dẫn run ls in python - chạy ls trong python

Vietnamese [Tiếng Việt] translation by Dai Phong [you can also view the original English article] Dai Phong [you can also view the original English article]

Unix là một hệ ĐIềU Đó là nhiều lệnh unix thú vị mà chún ta là Câu hỏi đặt ra là, chún taó đó Đây là những gì tôms

LệNH unix

import subprocess 
time = subprocess.Popen['date', stdout=subprocess.PIPE, stderr=subprocess.PIPE]
output, err = time.communicate[]
print 'It is', output
8 liệt kÊ Tất Cả Các tập Tin Trong Thư Mục. Nếu bạn Để Nguynênn ________ 48 & nbsp; trong một script python, thÌ

Traceback [most recent call last]:
  File "test.py", line 1, in 
    ls
NameError: name 'ls' is not defined

Điề

os.system[]

Một Giải Phá

Như đã đề cập trong tài liệu hướng dẫn,

import subprocess 
time = subprocess.check_output['date']
print 'It is', time
1:

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 subprocess 
time = subprocess.Popen['date', stdout=subprocess.PIPE, stderr=subprocess.PIPE]
output, err = time.communicate[]
print 'It is', output
8 bằng Python như sau:

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

import subprocess 
time = subprocess.check_output['date']
print 'It is', time
5 của bạn.

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 subprocess 
time = subprocess.check_output['date']
print 'It is', time
6 của Unix như sau:

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:

import subprocess 
time = subprocess.check_output['date']
print 'It is', time
7

call[]

Mặc dù

import subprocess 
time = subprocess.check_output['date']
print 'It is', time
1 làm việc tốt, nhưng nó không được khuyến khích sử dụng vì nó được xem như đã cũ và không được hỗ trợ. Một giải pháp được khuyến khích hơn đó là hàm
import subprocess 
time = subprocess.check_output['date']
print 'It is', time
9 nằm trong mô-đun
import os
0 của Python. Như đề cập trong tài liệu hướng dẫn về hàm này:

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

import subprocess 
time = subprocess.Popen['date', stdout=subprocess.PIPE, stderr=subprocess.PIPE]
output, err = time.communicate[]
print 'It is', output
8 của Unix bằng phương thức này, chúng ta có thể làm như sau:

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 os
0, nhưng chúng ta hãy làm cho ví dụ trở nên thú vị hơn.

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 os
3, như sau:

import subprocess 
time = subprocess.check_output['date']
print 'It is', time

Đầu ra của script ở trên là:

import os
4

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

import os
0 và cách chúng ta có thể truyền kết quả vào các biến để thực hiện các hoạt động tiếp theo.

Tóm tắt

Như 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

import os
0, nó cung cấp tính linh hoạt cao khi làm việc với các lệnh Unix thông qua các hàm khác nhau của nó. Bạn có thể tìm hiểu thêm về mô-đun này và các hàm khác nhau của nó từ tài liệu hướng dẫn Python.

🔹 Chào mừng

Nếu bạn muốn tìm hiểu làm thế nào các chức năng này hoạt động đằng sau hậu trường và cách bạn có thể sử dụng toàn bộ sức mạnh của chúng, thì bài viết này là dành cho bạn.

Chúng tôi sẽ bắt đầu bằng cách lặn vào các khái niệm rất cần thiết để làm việc với

import os
7 và
import os
8:

  • Mô-đun Python
    import subprocess 
    time = subprocess.check_output['date']
    print 'It is', time
    2 tích hợp và cách nhập nó.
  • Các khái niệm về "thư mục" và "thư mục làm việc hiện tại".
  • Cách kiểm tra và thay đổi thư mục làm việc hiện tại của bạn.
  • Sự khác biệt giữa một con đường tuyệt đối và một con đường tương đối.

Sau đó, chúng tôi sẽ tự đi sâu vào các chức năng:

  • Cách làm việc với chức năng
    import os
    7 và khi nào nên sử dụng nó.
  • Cách làm việc với chức năng
    os.[]
    1 và khi nào nên sử dụng nó.
  • Ví dụ về cả hai và cách họ làm việc đằng sau hậu trường.

Hãy bắt đầu nào! ⭐

🔸 Mô -đun HĐH

Hai chức năng mà chúng ta sẽ thảo luận:

os.[]
2 và
os.[]
3 thuộc về mô -đun
import subprocess 
time = subprocess.check_output['date']
print 'It is', time
2. Mô -đun này bao gồm các chức năng được sử dụng để tương tác với hệ điều hành của bạn, thực hiện các hành động như:

  • Tạo một thư mục mới.
  • Đổi tên một thư mục hiện có.
  • Loại bỏ một thư mục.
  • Hiển thị đường dẫn đến thư mục làm việc hiện tại của bạn.
  • Nhiều hơn nữa!

💡 Mẹo:

  • Một thư mục là những gì chúng ta thường biết là một "thư mục", nơi chúng ta thường lưu trữ các tệp liên quan và/hoặc các thư mục khác, tạo một hệ thống phân cấp các thư mục trong các thư mục được gọi là thư mục con. Một ví dụ về thư mục là thư mục "tài liệu" của bạn.directory is what we commonly know as a "folder", where we usually store related files and/or other directories, creating a hierarchy of directories within directories that are called subdirectories. An example of a directory is your "Documents" folder.
  • Một mô -đun là một tệp chứa mã Python liên quan.module is a file that contains related Python code.

Cách nhập mô -đun HĐH

Để sử dụng mô -đun

import subprocess 
time = subprocess.check_output['date']
print 'It is', time
2 trong tập lệnh của bạn, bạn cần "nhập" nó. Nhập một mô -đun có nghĩa là đạt được quyền truy cập vào tất cả các chức năng và biến được lưu trữ trong mô -đun. Chúng tôi nhập một mô -đun khi chúng tôi muốn sử dụng mã của nó trong tập lệnh của chúng tôi.

Để nhập mô -đun

import subprocess 
time = subprocess.check_output['date']
print 'It is', time
2, bạn chỉ cần đưa dòng này vào đầu tập lệnh Python của bạn hoặc chạy dòng này trong shell tương tác:

import os

Điều này sẽ cho phép bạn truy cập vào tất cả các chức năng được xác định trong mô -đun

import subprocess 
time = subprocess.check_output['date']
print 'It is', time
2.

Mẹo: Mô -đun này đã được cài đặt khi bạn cài đặt Python 3, vì vậy bạn sẽ có thể sử dụng nó ngay lập tức. this module was already installed when you installed Python 3, so you will be able to use it immediately.

Để có thể sử dụng các chức năng từ mô -đun

import subprocess 
time = subprocess.check_output['date']
print 'It is', time
2, bạn sẽ cần thêm tiền tố
os.[]
9 trước tên của chức năng mà bạn muốn gọi, như thế này:

os.[]

Ví dụ:

os.mkdir["New Folder"]

Cách nhập các chức năng riêng lẻ

Nếu bạn chỉ làm việc với một hoặc hai chức năng từ mô -đun, bạn có thể nhập chúng riêng lẻ bằng cú pháp này:

from  import , , ...

Ví dụ:

import os
os.system['ls']
0

Cách nhập các chức năng riêng lẻwithout adding the

os.[]
9 prefix, like this:

import os
os.system['ls']
1

Ví dụ:

import os
os.system['ls']
2

Cách nhập các chức năng riêng lẻ

Nếu bạn chỉ làm việc với một hoặc hai chức năng từ mô -đun, bạn có thể nhập chúng riêng lẻ bằng cú pháp này:

Trong trường hợp này, bạn có thể gọi các chức năng trong tập lệnh của mình như bình thường, mà không cần thêm tiền tố

os.[]
9, như thế này:

import os
os.system['ls']
3

🔹 Thư mục làm việc hiện tại

Bây giờ chúng ta hãy xem một khái niệm rất quan trọng mà bạn cần biết trước khi bắt đầu làm việc với

import os
7 và
import os
8. Thư mục làm việc hiện tại của bạn, như tên gọi, là thư mục [thư mục] nơi bạn hiện đang làm việc.Tip:
os.mkdir["New Folder"]
4 means "current working directory."

Bạn có thể kiểm tra thư mục làm việc hiện tại của mình với chức năng này từ mô -đun
import subprocess 
time = subprocess.check_output['date']
print 'It is', time
2:

Điều này sẽ cho bạn thấy con đường đến thư mục làm việc hiện tại của bạn.

import os
os.system['ls']
4

Mẹo:

os.mkdir["New Folder"]
4 có nghĩa là "thư mục làm việc hiện tại."

import os
os.system['ls']
5

Từ vỏ tương tác

Nếu tôi chạy lệnh này trong shell tương tác [Windows], tôi sẽ thấy điều này:

import os
os.system['ls']
6

Đây là con đường đầy đủ đến thư mục làm việc hiện tại của tôi:

import os
os.system['ls']
7

Từ một kịch bản

Nếu tôi chạy lệnh này từ một tập lệnh, như thế này:Tip: If you run a script [a Python file], your current working directory is the directory where the script is currently in.

Tôi thấy:

Đường dẫn đầy đủ đến kịch bản [vị trí của nó trong hệ thống, trong hệ thống phân cấp thư mục].

import os
os.system['ls']
8

Mẹo: Nếu bạn chạy tập lệnh [tệp Python], thư mục làm việc hiện tại của bạn là thư mục nơi tập lệnh hiện đang ở.

Cách thay đổi thư mục làm việc hiện tại của bạnTip:

  • Bạn có thể thay đổi thư mục làm việc hiện tại của mình với lệnh này từ mô -đun
    import subprocess 
    time = subprocess.check_output['date']
    print 'It is', time
    2:absolute path specifies all the sequence of directories that you need to go through to reach your target directory. This path starts from the root directory of your system.

Ví dụ:

import os
os.system['ls']
9

Cách nhập các chức năng riêng lẻ

Nếu bạn chỉ làm việc với một hoặc hai chức năng từ mô -đun, bạn có thể nhập chúng riêng lẻ bằng cú pháp này:

import os
os.system['date']
0
  • Trong trường hợp này, bạn có thể gọi các chức năng trong tập lệnh của mình như bình thường, mà không cần thêm tiền tố
    os.[]
    9, như thế này:relative path specifies the path that you want to follow to find the target directory, but now the path starts from your current working directory. It's shorter and simpler than the absolute path.

Ví dụ: nếu thư mục làm việc hiện tại của bạn chứa một thư mục con [thư mục]

from  import , , ...
2, bạn có thể chuyển sang thư mục này bằng đường dẫn tương đối [hãy tưởng tượng nó là một thư mục trong một thư mục khác và chúng ta sẽ đi sâu hơn và sâu hơn vào hệ thống phân cấp], như thế này :

import os
os.system['date']
1

Mẹo: DOT [

from  import , , ...
3] ở đầu đường dẫn tương đối
from  import , , ...
4 đại diện cho thư mục làm việc hiện tại. Một dấu chấm kép [
from  import , , ...
5] được sử dụng để di chuyển phân cấp, đến thư mục "cha mẹ".Tip: The dot [
from  import , , ...
3] at the beginning of the relative path
from  import , , ...
4 represents the current working directory. A double dot [
from  import , , ...
5] is used to move up the hierarchy, to the "parent" directory.

Bây giờ bạn có tất cả kiến ​​thức nền tảng mà bạn sẽ cần để thực sự hiểu cách

import os
7 và
import os
8 làm việc, hãy xem chúng một cách chi tiết.

Chúng tôi sẽ bắt đầu với chức năng

import os
7. Hãy tiết lộ những bí ẩn của nó. ?

Mục đích và giá trị trả lại

Theo tài liệu Python, mục đích của chức năng này là:

Trả về một danh sách chứa tên của các mục trong thư mục được đưa ra bởi đường dẫn.

Về cơ bản, chức năng này trả về một danh sách với tên của tất cả các tệp và thư mục hiện đang được tìm thấy trong một thư mục cụ thể mà bạn chỉ định khi bạn gọi chức năng.

Mẹo: Danh sách sẽ không có thứ tự cụ thể, ngay cả khi bạn thường sắp xếp các phần tử theo thứ tự bảng chữ cái.Tip: The list will not have a specific order, even if you usually sort the elements alphabetically.

Cú pháp và tham số

Để gọi

import os
7, sẽ cần sử dụng cú pháp này:

Tham số

import os
os.system['ls']
00 chính xác là, đường dẫn tuyệt đối hoặc tương đối đến thư mục mà bạn muốn trực quan hóa. Trong Python 3.2 trở lên, tham số này là tùy chọn. Theo mặc định, đường dẫn sẽ dẫn đến thư mục làm việc hiện tại của bạn nếu bạn không vượt qua đối số.

Hãy nhớ rằng bạn phải nhập mô -đun

import subprocess 
time = subprocess.check_output['date']
print 'It is', time
2 trước khi gọi chức năng này.

Mẹo: Nếu bạn sử dụng câu lệnh nhập khẩu này

import os
os.system['ls']
02 để nhập chức năng riêng lẻ, bạn có thể bỏ qua tiền tố
os.[]
9, như thế này:Tip: If you use this import statement
import os
os.system['ls']
02 to import the function individually, you can omit the
os.[]
9 prefix, like this:

Sử dụng các trường hợp và lợi thế

Hàm

import os
7 rất hữu ích vì nó hoạt động trên bất kỳ hệ điều hành nào mà Python chạy, vì vậy nếu Python được cài đặt trên thiết bị của bạn, chức năng này sẽ hoạt động chính xác.

Bây giờ chúng ta hãy nói một chút về giá trị trả lại của nó. Vì nó trả về một danh sách, chúng tôi có thể lưu trữ danh sách này trong một biến và làm việc với nó trong chương trình của chúng tôi.

Ví dụ: hãy nói rằng chúng tôi muốn làm một cái gì đó với tất cả các tệp từ một thư mục nhất định, chẳng hạn như chuyển đổi hình ảnh thành màu đen và trắng hoặc sửa đổi nội dung của chúng. Chúng tôi có thể làm điều đó bằng cách sử dụng một vòng lặp, như thế này:

import os
os.system['date']
2

Tất nhiên, bạn sẽ cần xác định những gì xảy ra trong vòng lặp, nhưng đây là một ví dụ về những gì bạn có thể làm với chức năng này.

Điều này là tuyệt vời, phải không?

Nhưng có các tập tin và thư mục trong cùng một danh sách có thể có một chút vấn đề nếu chúng ta muốn làm việc với một vòng lặp, phải không? Chúng tôi sẽ cần thêm một điều kiện để kiểm tra loại của từng phần tử. Làm thế nào chúng ta có thể lập một danh sách chỉ chứa tên tệp [không có thư mục] hoặc ngược lại?

Hãy xem nào! ✨

Chỉ bao gồm các tập tin

Nếu bạn muốn "lọc" danh sách được trả về bởi

import os
os.system['ls']
05 để chỉ bao gồm các tệp [không có thư mục], bạn có thể sử dụng dòng mã này:files [no directories] you can use this line of code:

import os
os.system['date']
3

Mẹo: Bạn có thể tùy chỉnh đối số

import os
os.system['ls']
06 hoặc bỏ qua nó để sử dụng thư mục làm việc hiện tại của bạn.Tip: You can customize the
import os
os.system['ls']
06 argument or omit it to use your current working directory.

Hãy xem một ví dụ với thư mục làm việc hiện tại của tôi [tôi đang sử dụng Windows]:

Thư mục của tôi [thư mục] có:

  • Hai thư mục con [thư mục trong thư mục chính]
  • Một tệp PowerPoint
  • Một hình ảnh [tệp .png]
  • Một kịch bản Python

Nếu tôi gọi hàm

import os
7 từ tệp
import os
os.system['ls']
08 và in danh sách được trả về:

import os
os.system['date']
4

Đây là đầu ra:

import os
os.system['date']
5

Bạn có thể thấy rằng tất cả các tệp và thư mục từ thư mục làm việc hiện tại của tôi đã được bao gồm.

Để lọc danh sách chỉ chứa các tệp, chúng ta có thể sử dụng câu lệnh này:

import os
os.system['date']
6

Bây giờ đầu ra là:

import os
os.system['date']
7

Lưu ý cách các thư mục được "lọc", chính xác là những gì chúng tôi muốn.

Chỉ bao gồm các thư mục

Tương tự, nếu bạn muốn "lọc" danh sách để chỉ bao gồm các thư mục, bạn có thể sử dụng dòng mã này:directories, you can use this line of code:

import os
os.system['date']
8

Bây giờ đầu ra là:

import os
os.system['date']
9

Lưu ý cách các thư mục được "lọc", chính xác là những gì chúng tôi muốn.

Chỉ bao gồm các thư mục

Tương tự, nếu bạn muốn "lọc" danh sách để chỉ bao gồm các thư mục, bạn có thể sử dụng dòng mã này:

from subprocess import call
call['ls']
0

Chính xác những gì chúng tôi muốn. Nhưng làm thế nào để tuyên bố này hoạt động đằng sau hậu trường? Hãy xem nào.

import os
os.system['date']
6
from subprocess import call
call['ls']
2

Cách

import os
os.system['ls']
09 hoạt động đằng sau hậu trường

from subprocess import call
call['ls']
3

Hàm bộ lọc được gọi bằng cách sử dụng cú pháp này:

Về cơ bản, nó "các bộ lọc" các yếu tố của đối số thứ hai [danh sách] dựa trên giá trị sự thật được trả về bằng cách gọi hàm được truyền dưới dạng đối số đầu tiên [

import os
os.system['ls']
10 hoặc
import os
os.system['ls']
11 trong các lệnh tương ứng của chúng]:

Ví dụ: nếu chúng ta có dòng mã này:

from subprocess import call
call['ls']
4

import os
os.system['ls']
05 Trả về danh sách này:

from subprocess import call
call['ls']
5

Yếu tố đầu tiên của danh sách [

import os
os.system['ls']
15] được chuyển làm đối số cho
import os
os.system['ls']
10 để kiểm tra xem đó có phải là tệp không:

from subprocess import call
call['ls']
6 Cuộc gọi chức năng trả về
import os
os.system['ls']
12, vì vậy đó là một tệp và nó được bao gồm trong danh sách.

The function call returns

import os
os.system['ls']
12, so it's a file and it's included in the list.

Nhưng nếu phần tử là một thư mục:

from subprocess import call
call['ls']
7 Cuộc gọi chức năng trả về
import os
os.system['ls']
18, vì vậy nó không được đưa vào danh sách. Quá trình này tiếp tục cho mọi yếu tố trong danh sách cho đến khi danh sách mới chỉ chứa tên tệp.

The function call returns

import os
os.system['ls']
18, so it's not included in the list. This process continues for every element in the list until the new list only contains file names.

Sau đó, kể từ khi

import os
os.system['ls']
09 trả về một điều đáng tin cậy, chúng tôi lập một danh sách từ điều này có thể sử dụng
import os
os.system['ls']
20:

from subprocess import call
call['ls']
8

Và chúng tôi in nó vì chúng tôi đang làm việc với tệp Python [tập lệnh]:

import os
os.system['date']
6

Mẹo: Bạn có thể xác định trực quan xem một phần tử của danh sách đại diện cho một tệp hoặc thư mục bằng cách xem nó có mở rộng [loại] sau tên của nó không. Ví dụ:

import os
os.system['ls']
21 có tiện ích mở rộng
import os
os.system['ls']
22 cho bạn biết rằng đó là tệp PowerPoint nhưng thư mục không có phần mở rộng, như
import os
os.system['ls']
23.Tip: You can visually identify if an element of the list represents a file or a directory by seeing if it has an extension [type] after its name. For example:
import os
os.system['ls']
21 has a
import os
os.system['ls']
22 extension that tells you that it's a PowerPoint file but a directory doesn't have an extension, like
import os
os.system['ls']
23.

Hệ thống ["LS"]

Bây giờ bạn đã biết cách làm việc với

import os
7, hãy xem chức năng
os.[]
3 hoạt động như thế nào và cách bạn có thể sử dụng nó.

Mục đích

Theo tài liệu Python, mục đích của hàm

os.[]
3 là:

Thực thi lệnh [một chuỗi] trong một vỏ bọc

Về cơ bản, hàm này có một lệnh [như một chuỗi] và thực thi nó.

Trong trường hợp này, lệnh mà chúng tôi đang truyền là

import os
os.system['ls']
27, một lệnh UNIX được sử dụng trong Linux để hiển thị nội dung của thư mục dưới dạng đầu ra tiêu chuẩn.

Không giống như

import os
7, hàm
os.[]
3 sẽ không trả lại danh sách nếu chúng tôi vượt qua lệnh
import os
os.system['ls']
27, nó sẽ chỉ hiển thị danh sách các tệp và thư mục dưới dạng đầu ra tiêu chuẩn. Do đó, bạn nên sử dụng nó nếu bạn chỉ muốn trực quan hóa danh sách mà không thực sự làm việc với nó trong chương trình của bạn.will not return a list if we pass the
import os
os.system['ls']
27 command, it will only display the list of files and directories as standard output. Therefore, you should use it if you only want to visualize the list without actually working with it in your program.

Cú pháp và tham số

Để gọi chức năng này, bạn sẽ cần sử dụng cú pháp này:

Đối số duy nhất của nó là lệnh mà bạn muốn thực thi được định dạng dưới dạng chuỗi [được bao quanh bởi các trích dẫn kép hoặc trích dẫn đơn].

Đặc biệt, lệnh

import subprocess 
time = subprocess.Popen['date', stdout=subprocess.PIPE, stderr=subprocess.PIPE]
output, err = time.communicate[]
print 'It is', output
8 cho phép bạn xem nội dung của thư mục làm việc hiện tại của bạn.

Ví dụ: nếu đây là thư mục làm việc của tôi [ba tệp Python và một thư mục con]:

Và tôi gọi hàm

os.[]
3, như thế này:

import subprocess 
time = subprocess.Popen['date', stdout=subprocess.PIPE, stderr=subprocess.PIPE]
output, err = time.communicate[]
print 'It is', output
0

Đây là đầu ra:

import subprocess 
time = subprocess.Popen['date', stdout=subprocess.PIPE, stderr=subprocess.PIPE]
output, err = time.communicate[]
print 'It is', output
1

Chúng ta có thể thấy đầu ra tiêu chuẩn trong bảng điều khiển [danh sách các tệp và thư mục]:

import subprocess 
time = subprocess.Popen['date', stdout=subprocess.PIPE, stderr=subprocess.PIPE]
output, err = time.communicate[]
print 'It is', output
2

và giá trị trả về:

import subprocess 
time = subprocess.Popen['date', stdout=subprocess.PIPE, stderr=subprocess.PIPE]
output, err = time.communicate[]
print 'It is', output
3

💡 Lưu ý: Đối với các ví dụ về chức năng

os.[]
3 này, tôi đang làm việc với một công cụ dòng lệnh trực tuyến có tên Repress.it vì máy tính của tôi đã cài đặt Windows và lệnh
import subprocess 
time = subprocess.Popen['date', stdout=subprocess.PIPE, stderr=subprocess.PIPE]
output, err = time.communicate[]
print 'It is', output
8 không được nhận ra bởi dấu nhắc lệnh mặc định.Note: For these examples of the
os.[]
3 function, I'm working with an online command line tool called Repl.it since my computer has Windows installed and the command
import subprocess 
time = subprocess.Popen['date', stdout=subprocess.PIPE, stderr=subprocess.PIPE]
output, err = time.communicate[]
print 'It is', output
8 is not recognized by the default command prompt.

Giới hạn

Một trong những hạn chế chính của chức năng này là lệnh được thông qua là đối số phải được công nhận bởi hệ điều hành hoặc môi trường mà bạn đang làm việc.

Ví dụ: lệnh

import subprocess 
time = subprocess.Popen['date', stdout=subprocess.PIPE, stderr=subprocess.PIPE]
output, err = time.communicate[]
print 'It is', output
8 sẽ không được nhận ra trong Windows theo mặc định trong dấu nhắc lệnh. Bạn sẽ thấy lỗi này nếu bạn cố gắng chạy nó:

'LS' không được công nhận là lệnh bên trong hoặc bên ngoài, chương trình có thể vận hành hoặc tệp hàng loạt.

Một lệnh tương tự trong Windows sẽ là lệnh

import os
os.system['ls']
36:

import subprocess 
time = subprocess.Popen['date', stdout=subprocess.PIPE, stderr=subprocess.PIPE]
output, err = time.communicate[]
print 'It is', output
4

Mẹo: Có nhiều cách khác để chạy lệnh

import subprocess 
time = subprocess.Popen['date', stdout=subprocess.PIPE, stderr=subprocess.PIPE]
output, err = time.communicate[]
print 'It is', output
8 trên Windows, chẳng hạn như sử dụng các chương trình đầu cuối nhận ra các lệnh Unix, nhưng theo mặc định, Windows không nhận ra lệnh
import os
os.system['ls']
27.
There are alternative ways to run the
import subprocess 
time = subprocess.Popen['date', stdout=subprocess.PIPE, stderr=subprocess.PIPE]
output, err = time.communicate[]
print 'It is', output
8 command on Windows, such as using terminal programs that recognize Unix commands, but by default Windows does not recognize the
import os
os.system['ls']
27 command.

Giá trị trả về

Theo tài liệu Python:

Trên Unix, giá trị trả về là trạng thái thoát của quy trình được mã hóa theo định dạng được chỉ định cho
import os
os.system['ls']
39.

and...

Trên Windows, giá trị trả về được trả về bởi lệnh System Shell sau khi chạy.

Mẹo: Lưu ý rằng chức năng này không trả lại danh sách. Nó chỉ đơn giản hiển thị danh sách dưới dạng đầu ra tiêu chuẩn, vì vậy bạn không thể lưu trữ nó trong một biến như bạn đã làm với

import os
7.Tip: Note that this function does not return a list. It simply displays the list as standard output, so you can't store it in a variable like you did with
import os
7.

Biến thể của lệnh
import subprocess 
time = subprocess.Popen['date', stdout=subprocess.PIPE, stderr=subprocess.PIPE]
output, err = time.communicate[]
print 'It is', output
8

Một tính năng chính của

import os
os.system['ls']
42 là nó có nhiều tùy chọn hữu ích và thú vị để tùy chỉnh cách trình bày đầu ra. Hãy xem một số trong số họ.

Tùy chọn 1: Chúng tôi có thể hiển thị thêm thông tin về các tệp và thư mục như kích thước, vị trí và ngày sửa đổi của chúng bằng lệnh

import os
os.system['ls']
43. We can show more information about files and directories such as their size, location, and modification date and time using the command
import os
os.system['ls']
43.

import subprocess 
time = subprocess.Popen['date', stdout=subprocess.PIPE, stderr=subprocess.PIPE]
output, err = time.communicate[]
print 'It is', output
5

Tùy chọn 2: Để có thể nhận biết trực quan các thư mục nhanh hơn, chúng ta có thể sử dụng

import os
os.system['ls']
44, điều này thêm một dấu gạch chéo phía trước
from  import , , ...
1 vào cuối tên của họ [xem
import os
os.system['ls']
46 bên dưới].
To be able to visually recognize directories faster, we can use
import os
os.system['ls']
44, which adds a forward slash
from  import , , ...
1 to the end of their names [see
import os
os.system['ls']
46 below].

import subprocess 
time = subprocess.Popen['date', stdout=subprocess.PIPE, stderr=subprocess.PIPE]
output, err = time.communicate[]
print 'It is', output
6

Tùy chọn 3: Để sắp xếp các tệp theo kích thước, chúng ta có thể sử dụng lệnh

import os
os.system['ls']
47. To sort the files by size, we can use the command
import os
os.system['ls']
47.

import subprocess 
time = subprocess.Popen['date', stdout=subprocess.PIPE, stderr=subprocess.PIPE]
output, err = time.communicate[]
print 'It is', output
7

Có nhiều lựa chọn khác để tùy chỉnh có thể hữu ích cho mục tiêu cụ thể của bạn. Tại đây bạn có thể tìm thêm thông tin về lệnh

import os
os.system['ls']
48 và cách bạn có thể sử dụng toàn bộ sức mạnh của nó.

Tóm tắt ListDir so với hệ thống ["LS"]

  • Mục đích:
    import os
    7 Trả về danh sách các tên tệp và thư mục trong đường dẫn được chỉ định [theo mặc định, thư mục làm việc hiện tại] trong khi
    os.[]
    1 chỉ hiển thị chúng dưới dạng đầu ra tiêu chuẩn.
    import os
    7 returns the list of file names and directories in the path specified [by default, the current working directory] while
    os.[]
    1 only displays them as standard output.
  • Hệ điều hành:
    import os
    7 có thể được sử dụng độc lập với hệ điều hành mà bạn đang làm việc.Ngược lại,
    import os
    os.system['ls']
    52 phải được thực thi trong một hệ điều hành hoặc môi trường nhận ra lệnh
    import os
    os.system['ls']
    27.
    import os
    7 can be used independently of the operating system that you are working with. In contrast,
    import os
    os.system['ls']
    52 has to be executed in an operating system or environment that recognizes the
    import os
    os.system['ls']
    27 command.
  • Tùy chỉnh: Bạn có thể lọc danh sách được trả về bởi
    import os
    7 Nếu bạn cần xóa các tệp hoặc thư mục bằng hàm
    import os
    os.system['ls']
    09 và bạn có thể truyền các tùy chọn để tùy chỉnh đầu ra của
    import os
    os.system['ls']
    52.
    you can filter the list returned by
    import os
    7 if you need to remove files or directories using the
    import os
    os.system['ls']
    09 function and you can pass options to customize the output of
    import os
    os.system['ls']
    52.

Tôi thực sự hy vọng rằng bạn thích bài viết của tôi và thấy nó hữu ích.Bây giờ bạn có thể làm việc với các chức năng này trong các dự án Python của bạn.Kiểm tra các khóa học trực tuyến của tôi.Theo dõi tôi trên Twitter.⭐Now you can work with these functions in your Python projects. Check out my online courses. Follow me on Twitter. ⭐️

Học mã miễn phí.Chương trình giảng dạy nguồn mở của Freecodecamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển.Bắt đầu

Bài Viết Liên Quan

Chủ Đề