Trong bài đăng này, bạn sẽ tìm hiểu các cách khác nhau để liệt kê các tệp trong một thư mục, sử dụng cả thư viện OS và thư viện Glob
Làm việc với dữ liệu, bạn có thể rơi vào tình huống cần kết hợp các tệp khác nhau hoặc trích xuất dữ liệu từ tệp mới nhất
Mục lục
Cấu trúc thư mục mẫu
Để theo dõi, hãy sử dụng cấu trúc dữ liệu trong hình bên dưới. Mỗi tệp chứa dữ liệu bán hàng cho một tháng khác nhau, như được hiển thị bên dưới
Nhập thư viện OS và Glob
Cả thư viện OS và Glob đều được cài đặt theo mặc định. Để nhập chúng, chỉ cần viết
import os
import glob
Sử dụng chức năng listdir của os để trả về tất cả các tệp trong một thư mục
Hàm listdir của hệ điều hành tạo danh sách tất cả các tệp [và thư mục] trong một thư mục
Để sử dụng điều này, chỉ cần chuyển thư mục làm đối số
Để làm theo, hãy tải các tệp mẫu vào một thư mục. Truyền đường dẫn đến thư mục Files vào đối số của hàm listdir
files = os.listdir[file_path]
print[files]
# Returns
# ['November.xlsx', 'October.xlsx', 'Other Files']
Sử dụng chức năng Walk của os để trả về tất cả các tệp trong một thư mục và tất cả các thư mục con
Nếu bạn muốn liệt kê tất cả các tệp trong một thư mục và tất cả các thư mục con, bạn có thể sử dụng chức năng os walk
Chức năng này khó hiểu hơn một chút, nhưng hãy xem mã bên dưới
files_list = []
for root, directories, files in os.walk[file_path]:
for name in files:
files_list.append[os.path.join[root, name]]
print[files_list]
Hàm walk trả về một bộ gồm ba. Vòng lặp for này đi qua các đầu ra đó
Xem một số hướng dẫn Python khác về datagy, bao gồm hướng dẫn đầy đủ của chúng tôi về cách tạo kiểu cho Pandas và tổng quan toàn diện của chúng tôi về Pivot Tables trong Pandas
Sử dụng Glob để liệt kê tất cả các tệp trong một thư mục
Glob hoạt động tương tự như chức năng os listdir, nhưng bạn có thể tìm kiếm tất cả các tệp hoặc những tệp phù hợp với các điều kiện cụ thể
Một lợi ích chính của thư viện toàn cầu là nó tự động bao gồm đường dẫn đến tệp trong mỗi mục. Điều này có thể đặc biệt hữu ích cho công việc liên quan đến dữ liệu
Ví dụ: để trả lại mọi thứ trong một thư mục, hãy sử dụng dấu hoa thị [*]
file_list = glob.glob["FILE_PATH/*"]
print[file_list]
Điều này sẽ trả về tất cả các tệp và thư mục trong thư mục đó
Sử dụng Glob để trả về tất cả các tệp của một loại tệp trong một thư mục
Tương tự như ví dụ trên, bạn cũng có thể chỉ trả về các tệp phù hợp với một điều kiện nhất định. Ví dụ: nếu bạn chỉ muốn trả về các tệp Excel, bạn có thể viết
file_list = glob.glob["FILE_PATH/*.xlsx"]
Điều này sẽ chỉ trả về các tệp có phần mở rộng xlsx
Điều này có thể cực kỳ hữu ích trong việc lấy tên tệp của chỉ một số loại tệp nhất định
Kết hợp dữ liệu với Pandas và Glob
Sử dụng Pandas và toàn cầu, thật dễ dàng để kết hợp nhiều tệp Excel vào một khung dữ liệu duy nhất
Ví dụ: nếu bạn muốn kết hợp các tệp tháng 11 và tháng 10 từ các tệp mẫu, điều này có thể được thực hiện dễ dàng với Glob và Pandas
file_list = glob.glob["FILE_PATH/*.xlsx"]
files = []
for filename in file_list:
df = pd.read_excel[filename]
files.append[df]
frame = pd.concat[files, axis=0, ignore_index=True]
print[frame]
Điều này trả về một khung dữ liệu kết hợp đầy đủ của tất cả các tệp Excel trong một thư mục
Phần kết luận
Trong bài đăng này, bạn đã học cách liệt kê tất cả các tệp trong một thư mục bằng cách sử dụng hàm os listdir, cách duyệt qua các thư mục trong một thư mục và lấy tất cả các tên tệp cũng như cách sử dụng glob để nhận các đường dẫn tệp cụ thể. Cuối cùng, bạn đã học cách kết hợp các tệp Excel vào một khung dữ liệu duy nhất bằng cách sử dụng toàn cầu và Pandas
Hệ điều hành Python. con đường. phương thức tham gia kết hợp một hoặc nhiều tên đường dẫn thành một đường dẫn duy nhất. Phương pháp này thường được sử dụng với các phương thức os như os. walk[] để tạo đường dẫn cuối cùng cho tệp hoặc thư mục. hệ điều hành. con đường. join[] tự động thêm bất kỳ dấu gạch chéo cần thiết nào vào tên đường dẫn tệp
Cách sử dụng hệ điều hành Python. con đường. tham gia
Bạn có thể đã bị cuốn vào mê cung đường dẫn khi làm việc với các tệp trong Python
Tìm trận đấu Bootcamp của bạn
- Career Karma kết hợp bạn với các bootcamp công nghệ hàng đầu
- Truy cập học bổng độc quyền và các khóa học chuẩn bị
Họ
Họ
Số điện thoại
Bằng cách tiếp tục, bạn đồng ý với Điều khoản dịch vụ và Chính sách quyền riêng tư của chúng tôi và bạn đồng ý nhận các ưu đãi và cơ hội từ Career Karma qua điện thoại, tin nhắn văn bản và email
Để làm việc với các tệp, bạn cần chỉ định thư mục chứa tệp. Điều này dễ dàng hơn âm thanh. Nếu bạn không chỉ định đúng đường dẫn, chương trình của bạn sẽ không hoạt động
Trong hướng dẫn này, chúng ta sẽ nói về hệ điều hành. con đường. tham gia. Đây là phương pháp kết hợp các thành phần của đường dẫn tệp thành một đường dẫn hoàn chỉnh. Chúng tôi sẽ xem qua hai ví dụ để giúp bạn bắt đầu với phương pháp này
Có gì trong Đường dẫn tệp?
Đường dẫn tệp là dãy tên tệp và thư mục. Chuỗi tên này đưa bạn đến một vị trí nhất định trên hệ điều hành [HĐH] máy tính của bạn
Hãy lấy đường dẫn sau đây làm ví dụ
/Users/James/tutorials
Đường dẫn này đưa chúng ta đến một thư mục có tên là “hướng dẫn”. Nếu chúng tôi muốn truy cập một tệp hoặc thư mục cụ thể trong thư mục này, chúng tôi có thể trỏ tới nó bằng tên tệp của nó
/Users/James/tutorials/README.md
Bạn có thể viết các đường dẫn tệp này theo cách thủ công bằng Python. Làm như vậy có thể là không thực tế. Đó là nơi os. con đường. tham gia đi vào
Hệ điều hành Python là gì. con đường. tham gia?
hệ điều hành. con đường. tham gia kết hợp tên đường dẫn thành một đường dẫn hoàn chỉnh. Điều này có nghĩa là bạn có thể hợp nhất nhiều phần của đường dẫn thành một, thay vì mã hóa cứng mọi tên đường dẫn theo cách thủ công
Để sử dụng chức năng này, bạn cần nhập thư viện os vào mã của mình
________số 8_______
Chúng ta hãy xem cú pháp của os. con đường. phương thức tham gia []. hệ điều hành. con đường. chức năng tham gia chấp nhận danh sách các đường dẫn mà bạn muốn hợp nhất thành một
os.path.join[path1, path2...]
path1, path2 và tất cả các giá trị tiếp theo đại diện cho các đường dẫn bạn muốn kết hợp thành một tên duy nhất
path = os.path.join["/Users/James/tutorials", "index.html"] print[path]
Mã này trả về. /Người dùng/James/hướng dẫn/chỉ mục. html. hệ điều hành. con đường. phương thức tham gia tiếp tục từ thành phần đường dẫn tuyệt đối mà chúng tôi đã chỉ định [“/Users/James/tutorials”]. Chúng tôi thêm chỉ số. html đến cuối đường dẫn
» THÊM. Python AttributeError. 'nặng nề. đối tượng ndarray’ không có thuộc tính ‘chắp thêm’ Giải pháp
Tiện tay, hệ điều hành. con đường. phương thức tham gia chèn dấu gạch chéo về phía trước [được gọi là "dấu phân cách thư mục"] khi cần thiết. Điều này làm cho nó trở thành một cách thuận tiện hơn để kết hợp các tên đường dẫn tệp hơn là ghép chúng theo cách thủ công
hệ điều hành. con đường. tham gia Python Ví dụ
Hãy viết kết hợp tên tệp “index. html” trong thư mục “hướng dẫn/web/”. Tệp này nằm trong thư mục làm việc hiện tại của chúng tôi
Chúng tôi sẽ bắt đầu bằng cách nhập thư viện os
________số 8_______
Tiếp theo, chúng ta sẽ lấy thư mục làm việc hiện tại để có thể thêm tên đường dẫn tệp vào đó
cwd = os.getcwd[]
Điều này trả về thư mục làm việc hiện tại của chúng tôi, đó là /Users/James/tutorials. Thư mục "hướng dẫn" nằm trong thư mục chính của người dùng của chúng tôi. Chúng tôi có thể sử dụng thông tin này để thêm “hướng dẫn/web” vào cuối thư mục làm việc của chúng tôi
web_tutorials = os.path.join[cwd, "tutorials/web"] print[web_tutorials]
Mã này trả về. /Người dùng/James/hướng dẫn/web. Mã của chúng tôi đã kết hợp các thành phần tên đường dẫn thành một. Dấu gạch chéo [“/”] đã được thêm vào giữa các tên đường dẫn của chúng tôi. Đường dẫn này đề cập đến thư mục “web” trong đường dẫn hiện tại của chúng tôi
hệ điều hành Python. con đường. tham gia. Liệt kê tập tin
Hãy sử dụng hệ điều hành. con đường. phương thức tham gia để trả về đường dẫn tệp đầy đủ của tất cả các tệp trong một thư mục. Chúng tôi sẽ liệt kê tất cả các tệp trong thư mục “Máy tính để bàn” trên hệ thống tệp của chúng tôi. Thư mục này nằm trong thư mục “/Users/James/” trên ổ đĩa
Chúng tôi sẽ bắt đầu bằng cách nhập thư viện os và xác định thư mục mà chúng tôi muốn tìm kiếm
import os cwd = os.getcwd[] desktop = os.path.join[cwd, "Desktop"]
Mã này tạo đường dẫn tệp cho thư mục Desktop liên quan đến thư mục làm việc hiện tại của chúng tôi. Tiếp theo, chúng ta có thể sử dụng hệ điều hành Python. listdir[] để lấy danh sách tất cả các tệp trong thư mục này
files = os.listdir[desktop]
Phương thức này trả về một danh sách tên của tất cả các tệp xuất hiện trong thư mục Desktop. Nó không bao gồm các đường dẫn của các tập tin. Bây giờ chúng ta có danh sách các tệp này, chúng ta có thể in tất cả chúng ra bàn điều khiển. Chúng tôi sẽ in đường dẫn tệp đầy đủ cho từng tệp bằng os. con đường. tham gia và một Python cho vòng lặp
/Users/James/tutorials/README.md0
Mã này lặp qua tất cả các tệp trong thư mục Máy tính để bàn. Nó hợp nhất tên của từng tệp với tên đường dẫn của thư mục Desktop. mã của chúng tôi trả về
/Users/James/tutorials/README.md1
Có ba tệp trên máy tính để bàn của tôi. . DS_Store, Ghi chú. md và Việc cần làm. md. Chúng tôi đã sử dụng hệ điều hành. con đường. join[] để tạo đường dẫn đầy đủ của từng tệp
» THÊM. Lỗi loại Python. chỉ có thể nối danh sách [không phải “int”] vào danh sách Giải pháp
Phần kết luận
hệ điều hành. con đường. phương thức tham gia kết hợp các thành phần trong tên đường dẫn để tạo tên đường dẫn đầy đủ
Phương pháp này giúp dễ dàng kết hợp hai hoặc nhiều thành phần của tên đường dẫn. ô. con đường. tham gia tự động chèn dấu gạch chéo [“/”] vào tên đường dẫn khi cần
"Career Karma bước vào cuộc đời tôi khi tôi cần nó nhất và nhanh chóng giúp tôi phù hợp với bootcamp. Hai tháng sau khi tốt nghiệp, tôi đã tìm được công việc mơ ước phù hợp với giá trị và mục tiêu của mình trong cuộc sống. "
Venus, Kỹ sư phần mềm tại Rockbot
Find Your Bootcamp MatchNếu bạn muốn tìm hiểu thêm về ngôn ngữ lập trình Python, hãy xem hướng dẫn Cách học Python của chúng tôi
Về chúng tôi. Career Karma là một nền tảng được thiết kế để giúp người tìm việc tìm kiếm, nghiên cứu và kết nối với các chương trình đào tạo việc làm để thăng tiến trong sự nghiệp của họ. Tìm hiểu về ấn phẩm CK