Làm cách nào để thêm phần mở rộng tệp trong Python?

Nó là một hàm đệ quy, tôi. e. , Mỗi khi trình tạo được gọi, nó sẽ tạo ra một bộ giá trị (current_path, thư mục trong current_path, tệp trong current_path) và nó sẽ theo dõi đệ quy từng thư mục để nhận danh sách tệp và thư mục cho đến khi không có thêm thư mục con nào từ thư mục ban đầu

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

Làm cách nào để thêm phần mở rộng tệp trong Python?

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
2

Phươ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ệp

Mô-đ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ỗi

Hã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

  1. Chúng tôi nhập khẩu os.path. Thay vì viết
    # 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)
    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 os.path
    file_path = "/Users/datagy/Desktop/Important Spreadsheet.xlsx"
    
    extension = os.path.splitext(file_path)[-1]
    print(extension)
    
    # Returns: .xlsx
    9 mở và rõ ràng
  2. Chúng tôi tải 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)
    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ở
  3. Áp 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 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)
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ệu

Cá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

Làm cách nào để thêm tiện ích mở rộng trong Python?

Cài đặt các gói và mô-đun Python theo cách thủ công . Một mô-đun Python là một. tập tin py; . Gói Python là một thư mục có. using pip install , as described above. A Python module is a single . py file; this file should be copied directly into one of the folders in the Python path. A Python package is a folder with .

Làm cách nào để thay đổi phần mở rộng tệp trong Python?

Đôi khi bạn có thể muốn đổi tên phần mở rộng của tệp của mình và điều này có thể được thực hiện nhanh chóng bằng cách sử dụng phương thức rename() trong Python . Điều này có thể được thực hiện bằng cách chọn tệp và sau đó chỉ lấy tên tệp bằng cách sử dụng phương thức splitext() của mô-đun os. Phương thức này trả về gốc và phần mở rộng riêng biệt.

Phần mở rộng của tệp trong Python là gì?

Các tệp có . Tiện ích mở rộng py chứa mã nguồn Python. Ngày nay ngôn ngữ Python đã trở thành ngôn ngữ rất nổi tiếng. Nó có thể được sử dụng để viết kịch bản hệ thống, phát triển web và phần mềm và toán học.