自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

文件格式轉(zhuǎn)換:Python 的十個轉(zhuǎn)換工具與庫介紹

開發(fā)
本文介紹了十個常用的 Python 文件格式轉(zhuǎn)換工具與庫,并通過實際代碼示例展示了它們的使用方法。

在日常編程中,文件格式轉(zhuǎn)換是一項常見的任務。無論是將CSV文件轉(zhuǎn)換為JSON,還是將Excel表格轉(zhuǎn)換為PDF,Python都有許多強大的庫可以幫助我們完成這些任務。今天,我們就來介紹10個常用的Python文件格式轉(zhuǎn)換工具與庫,并通過實際代碼示例來展示它們的使用方法。

1. pandas - CSV to JSON

pandas 是一個非常強大的數(shù)據(jù)處理庫,可以輕松地將CSV文件轉(zhuǎn)換為JSON格式。

import pandas as pd

# 讀取CSV文件
df = pd.read_csv('data.csv')

# 將DataFrame轉(zhuǎn)換為JSON
json_data = df.to_json(orient='records')

print(json_data)

輸出結果:

[{"name":"Alice","age":25,"city":"New York"},{"name":"Bob","age":30,"city":"Los Angeles"}]

2. openpyxl - Excel to CSV

openpyxl 是一個用于讀寫Excel文件的庫。我們可以使用它將Excel文件轉(zhuǎn)換為CSV格式。

import openpyxl
import csv

# 讀取Excel文件
workbook = openpyxl.load_workbook('data.xlsx')
sheet = workbook.active

# 創(chuàng)建CSV文件
with open('data.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    for row in sheet.iter_rows(values_only=True):
        writer.writerow(row)

print("Excel文件已成功轉(zhuǎn)換為CSV文件")

3. xml.etree.ElementTree - XML to JSON

xml.etree.ElementTree 是Python標準庫中的一個模塊,可以用來解析XML文件并將其轉(zhuǎn)換為JSON格式。

import xml.etree.ElementTree as ET
import json

# 解析XML文件
tree = ET.parse('data.xml')
root = tree.getroot()

# 將XML轉(zhuǎn)換為字典
def xml_to_dict(element):
    return {child.tag: xml_to_dict(child) if len(child) else child.text for child in element}

data_dict = {root.tag: xml_to_dict(root)}

# 將字典轉(zhuǎn)換為JSON
json_data = json.dumps(data_dict, indent=4)

print(json_data)

輸出結果:

{
    "root": {
        "person": [
            {
                "name": "Alice",
                "age": "25",
                "city": "New York"
            },
            {
                "name": "Bob",
                "age": "30",
                "city": "Los Angeles"
            }
        ]
    }
}

4. PyPDF2 - PDF to Text

PyPDF2 是一個用于處理PDF文件的庫,可以將PDF文件轉(zhuǎn)換為純文本。

import PyPDF2

# 打開PDF文件
with open('document.pdf', 'rb') as file:
    reader = PyPDF2.PdfReader(file)
    text = ''
    for page in reader.pages:
        text += page.extract_text()

print(text)

5. reportlab - HTML to PDF

reportlab 是一個用于生成PDF文件的庫,可以將HTML內(nèi)容轉(zhuǎn)換為PDF。

from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas
from bs4 import BeautifulSoup
import requests

# 獲取HTML內(nèi)容
url = 'https://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')

# 創(chuàng)建PDF文件
c = canvas.Canvas("output.pdf", pagesize=letter)
width, height = letter

# 將HTML內(nèi)容寫入PDF
text = soup.get_text()
lines = text.split('\n')
y = height - 50
for line in lines:
    c.drawString(50, y, line)
    y -= 20
    if y < 50:
        c.showPage()
        y = height - 50

c.save()
print("HTML內(nèi)容已成功轉(zhuǎn)換為PDF文件")

6. tabulate - CSV to Markdown Table

tabulate 是一個用于生成表格的庫,可以將CSV文件轉(zhuǎn)換為Markdown表格。

import pandas as pd
from tabulate import tabulate

# 讀取CSV文件
df = pd.read_csv('data.csv')

# 將DataFrame轉(zhuǎn)換為Markdown表格
markdown_table = tabulate(df, headers='keys', tablefmt='pipe')

print(markdown_table)

輸出結果:

| name  | age | city       |
|-------|-----|------------|
| Alice | 25  | New York   |
| Bob   | 30  | Los Angeles|

7. pyexcel - Excel to CSV (多表轉(zhuǎn)換)

pyexcel 是一個用于處理電子表格的庫,支持多種格式的轉(zhuǎn)換。

import pyexcel

# 讀取Excel文件
book = pyexcel.get_book(file_name="data.xlsx")

# 將所有工作表轉(zhuǎn)換為CSV文件
for sheet in book:
    sheet.save_as(f"{sheet.name}.csv")

print("所有工作表已成功轉(zhuǎn)換為CSV文件")

8. pdfplumber - PDF to CSV

pdfplumber 是一個用于提取PDF表格的庫,可以將PDF表格轉(zhuǎn)換為CSV格式。

import pdfplumber
import csv

# 打開PDF文件
with pdfplumber.open('document.pdf') as pdf:
    for page in pdf.pages:
        tables = page.extract_tables()
        for table in tables:
            with open('output.csv', 'w', newline='') as file:
                writer = csv.writer(file)
                for row in table:
                    writer.writerow(row)

print("PDF表格已成功轉(zhuǎn)換為CSV文件")

9. pydub - MP3 to WAV

pydub 是一個用于處理音頻文件的庫,可以將MP3文件轉(zhuǎn)換為WAV格式。

from pydub import AudioSegment

# 讀取MP3文件
audio = AudioSegment.from_mp3("input.mp3")

# 導出為WAV文件
audio.export("output.wav", format="wav")

print("MP3文件已成功轉(zhuǎn)換為WAV文件")

10. pillow - PNG to JPEG

Pillow 是一個用于處理圖像的庫,可以將PNG文件轉(zhuǎn)換為JPEG格式。

from PIL import Image

# 打開PNG文件
image = Image.open('input.png')

# 保存為JPEG文件
image.save('output.jpg', 'JPEG')

print("PNG文件已成功轉(zhuǎn)換為JPEG文件")

實戰(zhàn)案例:將多個CSV文件合并為一個Excel文件

假設我們有一個目錄,其中包含多個CSV文件,我們需要將這些CSV文件合并為一個Excel文件,每個CSV文件對應一個工作表。

import os
import pandas as pd
import openpyxl

# 定義目錄路徑
directory = 'csv_files'

# 創(chuàng)建一個新的Excel工作簿
wb = openpyxl.Workbook()
wb.remove(wb.active)  # 刪除默認的工作表

# 遍歷目錄中的CSV文件
for filename in os.listdir(directory):
    if filename.endswith('.csv'):
        # 讀取CSV文件
        df = pd.read_csv(os.path.join(directory, filename))
        
        # 創(chuàng)建新的工作表
        sheet_name = os.path.splitext(filename)[0]
        ws = wb.create_sheet(title=sheet_name)
        
        # 將DataFrame寫入工作表
        for r_idx, row in enumerate(df.values, 1):
            for c_idx, value in enumerate(row, 1):
                ws.cell(row=r_idx + 1, column=c_idx, value=value)
        
        # 寫入列名
        for c_idx, col in enumerate(df.columns, 1):
            ws.cell(row=1, column=c_idx, value=col)

# 保存Excel文件
wb.save('combined.xlsx')

print("所有CSV文件已成功合并為一個Excel文件")

總結

本文介紹了10個常用的Python文件格式轉(zhuǎn)換工具與庫,并通過實際代碼示例展示了它們的使用方法。從CSV到JSON、Excel到CSV、XML到JSON、PDF到Text、HTML到PDF、CSV到Markdown Table、Excel到CSV(多表轉(zhuǎn)換)、PDF到CSV、MP3到WAV以及PNG到JPEG,這些工具和庫都能幫助我們在日常編程中高效地完成文件格式轉(zhuǎn)換任務。最后,我們還提供了一個實戰(zhàn)案例,展示了如何將多個CSV文件合并為一個Excel文件。

責任編輯:趙寧寧 來源: 手把手PythonAI編程
相關推薦

2023-10-19 15:35:44

.NET轉(zhuǎn)換工具開發(fā)

2024-03-26 15:25:55

應用接口文件轉(zhuǎn)換工具鴻蒙

2024-05-20 01:00:00

Python代碼

2020-07-20 07:33:44

Python開發(fā)工具

2014-07-24 09:45:00

HTML視頻視頻轉(zhuǎn)換

2022-09-24 16:53:05

Python工具辦公

2009-03-25 17:10:50

Linux視頻轉(zhuǎn)換

2018-08-31 10:10:55

Linux開源轉(zhuǎn)換工具

2022-07-02 15:06:06

Pandoc文件Markdown

2010-01-08 10:49:21

JSON 轉(zhuǎn)換工具

2022-06-07 09:58:48

Spotify開源音頻文件

2023-06-27 15:50:23

Python圖像處理

2024-04-28 10:00:24

Python數(shù)據(jù)可視化庫圖像處理庫

2024-09-03 09:44:03

2024-02-01 12:53:00

PandasPython數(shù)據(jù)

2018-12-17 11:00:11

LinuxSoundConver音頻文件格式

2010-06-15 21:49:03

虛擬機遷移轉(zhuǎn)換工具

2023-10-07 11:36:15

2014-12-30 09:35:16

文字轉(zhuǎn)語音

2016-10-20 09:57:58

Linux轉(zhuǎn)換工具
點贊
收藏

51CTO技術棧公眾號