Python là một ngôn ngữ lập trình tuyệt vời để tự động hóa các tác vụ bằng cách sử dụng các tập lệnh đơn giản. Nó cung cấp rất nhiều gói và mô-đun cho mục đích này. Đôi khi bạn có thể cần thay đổi phần mở rộng tệp của nhiều tệp trong Python. Trong bài viết này, chúng ta sẽ tìm hiểu cách thay đổi phần mở rộng tệp của nhiều tệp trong Python. Chúng tôi sẽ chỉ đổi tên các tệp này bằng Python
Cách thay đổi phần mở rộng tệp của nhiều tệp trong Python
Dưới đây là các bước để thay đổi phần mở rộng tệp của nhiều tệp trong Python
Đầu tiên chúng tôi nhập các mô-đun cần thiết
import os, sys
Tiếp theo, chúng tôi lưu vị trí thư mục chứa. txt có phần mở rộng cần được thay đổi thành. csv
folder = '/home/ubuntu'
Sau đó, chúng tôi lặp qua từng tệp một. Chúng tôi sử dụng hàm listdir[] để lấy danh sách tất cả các tệp trong thư mục
for filename in os.listdir[folder]: infilename = os.path.join[folder,filename] if not os.path.isfile[infilename]: continue oldbase = os.path.splitext[filename] newname = infilename.replace['.txt', '.csv'] output = os.rename[infilename, newname]
Trong vòng lặp for ở trên, chúng tôi lấy đường dẫn tệp đầy đủ của từng tệp trong thư mục và lưu trữ nó trong biến infilename. Chúng tôi sử dụng điều kiện if để kiểm tra xem đường dẫn tệp có thực sự tồn tại hay không, nếu không, chúng tôi tiếp tục với tệp tiếp theo
Sử dụng hệ điều hành. đường dẫn. splitext[], chúng tôi lấy tên tệp không có phần mở rộng và lưu trữ nó trong biến cơ sở cũ. Sau đó, chúng tôi sử dụng chức năng thay thế [] để thay thế phần mở rộng tệp từ. txt thành. csv và lấy tên tệp mới. Cuối cùng, chúng ta sử dụng hàm rename[] để đổi tên file cũ thành tên file mới
Trong hướng dẫn này, bạn sẽ học cách sử dụng Python để lấy phần mở rộng tệp. Bạn sẽ hoàn thành việc này bằng cách sử dụng cả thư viện pathlib
và mô-đun os.path
Có thể làm việc với các tệp bằng Python một cách dễ dàng là một trong những thế mạnh lớn nhất của ngôn ngữ. Ví dụ, bạn có thể sử dụng thư viện glob
để lặp lại các tệp trong một thư mục. Khi bạn làm điều này, việc biết phần mở rộng tệp của mỗi tệp có thể đưa ra các quyết định tiếp theo. Do đó, biết cách lấy phần mở rộng của tệp là một kỹ năng nhập. Hãy bắt đầu học cách sử dụng Python để lấy phần mở rộng của tệp, trong Windows, Mac và Linux
Câu trả lời nhanh. Sử dụng Pathlib
Mục lục
Sử dụng Python Pathlib để lấy phần mở rộng của tệp
Thư viện pathlib của Python giúp làm việc và thao tác với các đường dẫn cực kỳ dễ dàng. Do đó, hoàn toàn hợp lý khi thư viện sẽ có cách truy cập vào phần mở rộng của tệp
Thư viện pathlib
đi kèm với một lớp có tên là Path
, mà chúng tôi sử dụng để tạo các đối tượng dựa trên đường dẫn. Khi chúng tôi tải đường dẫn của tệp vào một đối tượng Đường dẫn, chúng tôi có thể truy cập các thuộc tính cụ thể về đối tượng bằng cách sử dụng các thuộc tính tích hợp sẵn của nó
Hãy xem cách chúng ta có thể sử dụng thư viện pathlib
trong Python để lấy phần mở rộng của tệp
# Get a file's extension using pathlib
import pathlib
file_path = "/Users/datagy/Desktop/Important Spreadsheet.xlsx"
extension = pathlib.Path[file_path].suffix
print[extension]
# Returns: .xlsx
Chúng ta có thể thấy ở đây rằng chúng ta đã chuyển đường dẫn của tệp vào lớp Path
, tạo một đối tượng Đường dẫn. Sau khi chúng tôi thực hiện việc này, chúng tôi có thể truy cập các thuộc tính khác nhau, bao gồm thuộc tính
# Get a file's extension using os.path
import os.path
file_path = "/Users/datagy/Desktop/Important Spreadsheet.xlsx"
extension = os.path.splitext[file_path][-1]
print[extension]
# Returns: .xlsx
0. Khi chúng tôi gán giá trị này cho một biến có tên là # Get a file's extension using os.path
import os.path
file_path = "/Users/datagy/Desktop/Important Spreadsheet.xlsx"
extension = os.path.splitext[file_path][-1]
print[extension]
# Returns: .xlsx
1, chúng tôi đã in nó, nhận lại # Get a file's extension using os.path
import os.path
file_path = "/Users/datagy/Desktop/Important Spreadsheet.xlsx"
extension = os.path.splitext[file_path][-1]
print[extension]
# Returns: .xlsx
2Phương pháp này hoạt động tốt cho cả máy tính Mac và Linux. Tuy nhiên, khi bạn đang làm việc với Windows, đường dẫn tệp hoạt động hơi khác một chút
Vì điều này, khi sử dụng Windows, hãy tạo đường dẫn tệp của bạn dưới dạng chuỗi "thô". Nhưng bạn làm điều này bằng cách nào? . Điều này sẽ cho Python biết để không sử dụng dấu gạch chéo ngược làm ký tự thoát
Bây giờ chúng ta đã xem cách sử dụng pathlib
trong Python để lấy phần mở rộng tệp, hãy khám phá cách chúng ta có thể làm điều tương tự bằng cách sử dụng mô-đun os.path
Muốn tìm hiểu thêm?
Sử dụng hệ điều hành. đường dẫn trong Python để lấy phần mở rộng của tệp
Mô-đun os.path
cho phép chúng tôi dễ dàng làm việc với hệ điều hành của chúng tôi. Mô-đun
# Get a file's extension using os.path
import os.path
file_path = "/Users/datagy/Desktop/Important Spreadsheet.xlsx"
extension = os.path.splitext[file_path][-1]
print[extension]
# Returns: .xlsx
9 cho phép chúng tôi sử dụng đường dẫn tệp theo nhiều cách khác nhau, bao gồm cả việc cho phép chúng tôi lấy phần mở rộng của tệpMô-đun os.path
có chức năng hữu ích,
# Get a file's extension using os.path
import pathlib
import pandas as pd
file_paths = ["/Users/datagy/Desktop/Important Spreadsheet.xlsx", "/Users/datagy/Desktop/A Random Document.docx"]
df = pd.DataFrame[]
for file in file_paths:
if pathlib.Path[file].suffix in ['.xls', '.xlsx']:
temp_df = pd.read_excel[file]
df = df.append[temp_df]
1, cho phép chúng tôi chia đường dẫn tệp thành các thành phần riêng lẻ của chúng. Rất may, # Get a file's extension using os.path
import pathlib
import pandas as pd
file_paths = ["/Users/datagy/Desktop/Important Spreadsheet.xlsx", "/Users/datagy/Desktop/A Random Document.docx"]
df = pd.DataFrame[]
for file in file_paths:
if pathlib.Path[file].suffix in ['.xls', '.xlsx']:
temp_df = pd.read_excel[file]
df = df.append[temp_df]
1 là một hàm thông minh biết cách tách các phần mở rộng tệp, thay vì chỉ tách một chuỗiHãy xem cách chúng ta có thể sử dụng hàm
# Get a file's extension using os.path
import pathlib
import pandas as pd
file_paths = ["/Users/datagy/Desktop/Important Spreadsheet.xlsx", "/Users/datagy/Desktop/A Random Document.docx"]
df = pd.DataFrame[]
for file in file_paths:
if pathlib.Path[file].suffix in ['.xls', '.xlsx']:
temp_df = pd.read_excel[file]
df = df.append[temp_df]
1 để lấy phần mở rộng của tệp# Get a file's extension using os.path
import os.path
file_path = "/Users/datagy/Desktop/Important Spreadsheet.xlsx"
extension = os.path.splitext[file_path][-1]
print[extension]
# Returns: .xlsx
Hãy xem những gì chúng tôi đã làm ở đây
- Chúng tôi nhập khẩu
os.path
. Thay vì viết
5, chúng tôi sử dụng hình thức nhập này để chúng tôi có thể để biến# Get a file's extension using os.path import pathlib import pandas as pd file_paths = ["/Users/datagy/Desktop/Important Spreadsheet.xlsx", "/Users/datagy/Desktop/A Random Document.docx"] df = pd.DataFrame[] for file in file_paths: if pathlib.Path[file].suffix in ['.xls', '.xlsx']: temp_df = pd.read_excel[file] df = df.append[temp_df]
9 mở và rõ ràng# Get a file's extension using os.path import os.path file_path = "/Users/datagy/Desktop/Important Spreadsheet.xlsx" extension = os.path.splitext[file_path][-1] print[extension] # Returns: .xlsx
- Chúng tôi tải biến
7 của chúng tôi. Nhớ. nếu bạn là Windows, hãy biến đường dẫn tệp của bạn thành một chuỗi thô, bằng cách sửa trước một ___________3 trước dấu ngoặc kép mở# Get a file's extension using os.path import pathlib import pandas as pd file_paths = ["/Users/datagy/Desktop/Important Spreadsheet.xlsx", "/Users/datagy/Desktop/A Random Document.docx"] df = pd.DataFrame[] for file in file_paths: if pathlib.Path[file].suffix in ['.xls', '.xlsx']: temp_df = pd.read_excel[file] df = df.append[temp_df]
- Áp dụng hàm
1 cho đường dẫn tệp. Sau đó, chúng tôi truy cập mục cuối cùng của mục# Get a file's extension using os.path import pathlib import pandas as pd file_paths = ["/Users/datagy/Desktop/Important Spreadsheet.xlsx", "/Users/datagy/Desktop/A Random Document.docx"] df = pd.DataFrame[] for file in file_paths: if pathlib.Path[file].suffix in ['.xls', '.xlsx']: temp_df = pd.read_excel[file] df = df.append[temp_df]
# Get a file's extension using os.path
import pathlib
import pandas as pd
file_paths = ["/Users/datagy/Desktop/Important Spreadsheet.xlsx", "/Users/datagy/Desktop/A Random Document.docx"]
df = pd.DataFrame[]
for file in file_paths:
if pathlib.Path[file].suffix in ['.xls', '.xlsx']:
temp_df = pd.read_excel[file]
df = df.append[temp_df]
1 trả về một tuple. phần đầu tiên sẽ là tên tệp và phần thứ hai sẽ là phần mở rộng của nó. Do đó, nếu chúng tôi chỉ muốn phần mở rộng của tệp, chúng tôi chỉ có thể truy cập mục cuối cùng của bộ dữ liệuCách sử dụng phần mở rộng tệp Python
Bây giờ bạn đã học được hai cách khác nhau để sử dụng Python để lấy phần mở rộng của tệp, bạn có thể áp dụng cách này như thế nào?
Một phương pháp hữu ích là chỉ hành động trên các tệp Excel. Nếu bạn đang viết một vòng lặp for, trước tiên bạn có thể kiểm tra xem tệp có phải là tệp Excel hay không rồi tải tệp đó vào khung dữ liệu Pandas. Cách tiếp cận này sẽ cho phép bạn bỏ qua các tệp có thể không thực sự chứa bất kỳ dữ liệu nào
Hãy xem cách thực hiện điều này trong Python và Pandas
# Get a file's extension using os.path
import pathlib
import pandas as pd
file_paths = ["/Users/datagy/Desktop/Important Spreadsheet.xlsx", "/Users/datagy/Desktop/A Random Document.docx"]
df = pd.DataFrame[]
for file in file_paths:
if pathlib.Path[file].suffix in ['.xls', '.xlsx']:
temp_df = pd.read_excel[file]
df = df.append[temp_df]
Bây giờ bạn đã học được một ví dụ thực tế, hãy xem các hướng dẫn Pandas khác của tôi tại đây, bao gồm cách tính trung bình trong Pandas và cách thêm ngày vào cột Pandas
Phần kết luận
Trong bài đăng này, bạn đã học cách sử dụng Python để lấy phần mở rộng của tệp. Bạn đã học cách thực hiện điều này bằng cách sử dụng cả thư viện pathlib
cũng như mô-đun os.path
, sử dụng hàm
# Get a file's extension using os.path
import pathlib
import pandas as pd
file_paths = ["/Users/datagy/Desktop/Important Spreadsheet.xlsx", "/Users/datagy/Desktop/A Random Document.docx"]
df = pd.DataFrame[]
for file in file_paths:
if pathlib.Path[file].suffix in ['.xls', '.xlsx']:
temp_df = pd.read_excel[file]
df = df.append[temp_df]
1. Bạn đã học cách thực hiện điều này trong Windows, Mac và Linux để đảm bảo rằng mã của bạn có thể chạy trên các hệ thống