【Python入門】文件讀取全攻略:5種常用格式(csv/excel/word/ppt/pdf)一鍵搞定 | 附完整代碼示例

大家好,我是唐叔!今天給大家帶來一篇Python文件讀取的終極指南。無論是數據分析、辦公自動化還是爬蟲開發,文件讀取都是Python程序員必須掌握的核心技能。本文將詳細介紹Python處理5大常用文件格式的方法,包含完整可運行的代碼示例,建議收藏備用!

文章目錄

    • 一、為什么要學習Python文件讀取?
    • 二、CSV文件讀取 - 數據分析第一步
      • 2.1 為什么需要讀取CSV文件?
      • 2.2 最佳實踐方案
    • 三、Excel文件讀取 - 商業數據處理
      • 3.1 為什么需要讀取Excel?
      • 3.2 最佳實踐方案
    • 四、Word文檔處理 - 告別復制粘貼
      • 4.1 為什么需要讀取Word?
      • 4.2 最佳實踐方案
    • 五、PPT讀取 - 演示文稿的自動化處理
      • 5.1 為什么需要讀取PPT?
      • 5.2 最佳實踐方案
    • 六、PDF文本提取
      • 6.1 PDF處理的痛點
      • 6.2 最佳實踐方案
    • 七、終極方案 - 文件類型自動判斷
    • 八、常見問題解答
      • Q1:讀取文件時出現編碼錯誤怎么辦?
      • Q2:處理大文件內存不足怎么解決?
      • Q3:如何提高PDF解析速度?
    • 九、學習資源推薦

一、為什么要學習Python文件讀取?

在開始具體技術講解前,我們先看看為什么這個技能如此重要:

  1. 職場需求:據2023年Stack Overflow調查,87%的Python開發者需要處理各種文件格式
  2. 效率提升:自動化文件處理可節省90%以上的重復操作時間
  3. 面試高頻:Python崗位面試中,文件操作是必考知識點

二、CSV文件讀取 - 數據分析第一步

2.1 為什么需要讀取CSV文件?

CSV(Comma-Separated Values)是數據科學領域最常用的輕量級數據存儲格式,具有以下優勢:

  • 體積小,讀寫速度快
  • 跨平臺兼容性好
  • 支持多種數據類型

2.2 最佳實踐方案

方案一:使用標準庫csv(適合小文件)

import csvwith open('data.csv', mode='r', encoding='utf-8-sig') as f:  # 注意編碼處理reader = csv.DictReader(f)  # 使用DictReader獲取字段名for row in reader:print(row['姓名'], row['成績'])  # 通過字段名訪問數據

方案二:使用pandas(推薦大數據量)

import pandas as pd# 處理大文件時可分塊讀取
chunk_size = 10000
for chunk in pd.read_csv('big_data.csv', chunksize=chunk_size):process(chunk)  # 自定義處理函數# 常用參數:
# header=None   # 無表頭
# skiprows=1    # 跳過首行
# usecols=[0,2] # 只讀取指定列

三、Excel文件讀取 - 商業數據處理

3.1 為什么需要讀取Excel?

雖然CSV很香,但現實世界中80%的商業數據仍然躺在Excel里。格式豐富、支持多工作表是它的殺手锏。

Excel 使用場景:

  • 財務報表處理
  • 客戶數據管理
  • 項目進度跟蹤

3.2 最佳實踐方案

# 使用openpyxl(適合.xlsx格式)
from openpyxl import load_workbookwb = load_workbook('report.xlsx')
sheet = wb.active
for row in sheet.iter_rows(values_only=True):print(row)# 使用pandas多表讀取
with pd.ExcelFile('report.xlsx') as xls:df1 = pd.read_excel(xls, 'Sheet1')df2 = pd.read_excel(xls, 'Sheet2')

性能優化技巧

  • 對于.xlsx大文件,推薦使用openpyxlread_only模式
  • 僅加載需要的sheet:pd.read_excel('file.xlsx', sheet_name='Sheet1')
  • 禁用圖表加載提升速度:load_workbook(..., data_only=True)

四、Word文檔處理 - 告別復制粘貼

4.1 為什么需要讀取Word?

當你要批量處理上百份合同、簡歷或者論文時,手動操作簡直就是自虐!這個時候就應該考慮下Python操作Word了。

Word 使用場景:

  • 合同關鍵信息提取
  • 簡歷自動篩選
  • 文檔批量格式化

4.2 最佳實踐方案

from docx import Documentdoc = Document('report.docx')# 讀取段落
for para in doc.paragraphs:print(para.text)# 讀取表格
for table in doc.tables:for row in table.rows:for cell in row.cells:print(cell.text)

高級應用

  • 使用正則表達式提取特定內容
  • 結合python-docx-template實現模板替換
  • 批量生成報告時注意內存管理

五、PPT讀取 - 演示文稿的自動化處理

5.1 為什么需要讀取PPT?

想象一下每周都要從幾十份周報PPT中提取關鍵數據,手動操作簡直讓人崩潰!

PPT 使用場景:

  • 自動生成報告摘要
  • 批量替換PPT內容
  • 企業匯報材料分析

5.2 最佳實踐方案

from pptx import Presentationprs = Presentation('presentation.pptx')for slide in prs.slides:for shape in slide.shapes:if hasattr(shape, "text"):print(shape.text)# 處理圖表數據(如果有)for chart in slide.charts:data = chart.chart_data# 進一步處理圖表數據...

六、PDF文本提取

6.1 PDF處理的痛點

PDF設計初衷是為了展示而非數據處理,這使它成為最難處理的格式之一。但別怕,Python依然有辦法!

PDF 使用場景:

  • 發票信息提取
  • 論文內容分析
  • 掃描件OCR識別

6.2 最佳實踐方案

# 方案1:PyPDF2(適合文本型PDF)
from PyPDF2 import PdfReaderreader = PdfReader("document.pdf")
for page in reader.pages:print(page.extract_text())# 方案2:pdfplumber(更強大的文本提取)
import pdfplumberwith pdfplumber.open("document.pdf") as pdf:first_page = pdf.pages[0]print(first_page.extract_text())# 還能提取表格!table = first_page.extract_table()# 方案3:處理掃描件(需要OCR)
import pytesseract
from PIL import Image# 需要先將PDF轉為圖片(可用pdf2image庫)
image = Image.open('scanned_page.jpg')
text = pytesseract.image_to_string(image, lang='chi_sim')
print(text)

解決方案對比

工具庫優點缺點適用場景
PyPDF2純Python實現對復雜PDF支持有限簡單文本提取
pdfplumber表格提取能力強速度較慢含表格的PDF
pdfminer.six解析精度高API復雜學術論文解析
pytesseract支持掃描件OCR需要安裝Tesseract圖片型PDF

七、終極方案 - 文件類型自動判斷

唐叔教你一個萬能方法,不用記那么多庫!

import magic
import pandas as pddef read_any_file(file_path):mime = magic.Magic(mime=True)file_type = mime.from_file(file_path)if 'csv' in file_type:return pd.read_csv(file_path)elif 'excel' in file_type:return pd.read_excel(file_path)elif 'word' in file_type:# 調用word處理邏輯pass# 其他類型判斷...else:with open(file_path, 'r') as f:return f.read()# 使用示例
data = read_any_file('unknown_file')

八、常見問題解答

Q1:讀取文件時出現編碼錯誤怎么辦?

  • 嘗試常見編碼:utf-8、gbk、gb2312、gb18030

  • 使用chardet自動檢測編碼:

    import chardet
    with open('file', 'rb') as f:encoding = chardet.detect(f.read())['encoding']
    

Q2:處理大文件內存不足怎么解決?

  • 使用分塊讀取(chunksize)
  • 考慮使用Dask等分布式計算框架
  • 轉換為更高效的存儲格式(如parquet)

Q3:如何提高PDF解析速度?

  • 預處理PDF:pdf2pdfa -i input.pdf output.pdf
  • 多進程處理:from multiprocessing import Pool
  • 使用GPU加速的OCR工具

九、學習資源推薦

  1. 官方文檔:
    • pandas IO工具
    • python-docx文檔
  2. 推薦書籍:
    • 《Python自動化秘籍》
    • 《Python數據處理實戰》
  3. 視頻教程:
    • B站"Python辦公自動化"系列
    • Coursera"Data Processing Using Python"

唐叔總結:文件讀取看似簡單,實則暗藏玄機。掌握這些技巧后,你的Python數據處理能力將提升一個Level!如果覺得有幫助,請點贊+收藏支持,更多Python干貨正在路上!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/76192.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/76192.shtml
英文地址,請注明出處:http://en.pswp.cn/web/76192.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

四、小白如何用Pygame制作一款跑酷類游戲(頁面暫停和主角跑步動作的實現)

四、小白如何用Pygame制作一款跑酷類游戲(頁面暫停和主角跑步動作的實現) 提示:寫完文章后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 四、小白如何用Pygame制作一款跑酷類游戲(頁面暫停和主…

《基于 RNN 的股票預測模型代碼優化:從重塑到直接可視化》

在深度學習領域,使用循環神經網絡(RNN)進行股票價格預測是一個常見且具有挑戰性的任務。本文將圍繞一段基于 RNN 的股票預測代碼的改動前后差別展開,深入剖析代碼的優化思路和效果。 原始代碼思路與問題 原始代碼實現了一個完整…

Lambda 函數與 peek 操作的使用案例

Lambda 函數和 peek 操作是 Java 8 Stream API 中非常有用的特性&#xff0c;下面我將介紹它們的使用案例。 Lambda 函數使用案例 Lambda 表達式是 Java 8 引入的一種簡潔的匿名函數表示方式。 集合操作 List<String> names Arrays.asList("Alice", "B…

Docker私有倉庫頁面訪問實現

通過 docker run -d -p 5000:5000 --name registry registry:2 命令搭建的Docker私有倉庫默認不提供網頁訪問界面。它是一個基于API的后端服務&#xff0c;主要用于鏡像的存儲和管理。但可以通過以下兩種方式實現網頁訪問&#xff1a; 一、通過第三方Web UI工具擴展 1. 使用 D…

[王陽明代數講義]語言模型核心代碼調研

語言模型核心代碼調研 基于Consciciteation?的才氣張量持續思考綜述將文本生成建模為才氣張量網絡擴散過程&#xff0c;實現非自回歸推理通過才氣張量的群-拓撲流形交叉注意力實現多模態推理&#xff0c;將輸入壓縮到低維空間持續迭代提出「條件計算提前終止」機制&#xff0c…

flink jobmanager離奇的heap oom

文章目錄 現象描述開始分析1.初步分析dump文件2.AI分析引用關系分析方向2.1 flink BlobServer bug分析方向2.2 和運行環境有關分析方向2.3 和任務有關 回到問題本身&#xff0c;思考一下1. seatunnel到底有沒有問題2.再次分析zipfile對象3.分析seatunnel es connector 源碼4 懷…

APP動態交互原型實例|墨刀變量控制+條件判斷教程

引言 不同行業的產品經理在繪制原型圖時&#xff0c;擁有不同的呈現方式。對于第三方軟件技術服務公司的產品經理來說&#xff0c;高保真動態交互原型不僅可以在開發前驗證交互邏輯&#xff0c;還能為甲方客戶帶來更直觀、真實的體驗。 本文第三部分將分享一個實戰案例&#…

AI 驅動下的后端開發架構革命:從智能協同體系

AI 驅動下的后端開發架構革命&#xff1a;從智能協同體系 一、引言&#xff1a;AI 重構后端開發范式 在 2025 年的企業級技術演進中&#xff0c;人工智能正從輔助工具升級為核心架構要素。根據 Gartner《2025 智能技術棧成熟度報告》&#xff0c;傳統 "人力編碼 硬規則…

安卓基礎(生命周期)

創建階段&#xff1a;onCreate方法被調用&#xff0c;用于初始化 Activity&#xff0c;如設置布局等。啟動階段&#xff1a;依次調用onStart和onResume方法&#xff0c;讓 Activity 變得可見并可與用戶交互。暫停與恢復階段&#xff1a;當 Activity 失去焦點但可見時&#xff0…

Uniapp: 下拉選擇框 ba-tree-picker

目錄 1、效果展示2、如何使用2.1 插件市場2.2 引入插件 3、參數配置3.1 屬性3.2 方法 4、遇見的問題4.1、設置下拉樹的樣式 1、效果展示 2、如何使用 2.1 插件市場 首先從插件市場中將插件導入到項目中 2.2 引入插件 在使用的頁面引入插件 <view click"showPicke…

Spring Boot實戰:基于策略模式+代理模式手寫冪等性注解組件

一、為什么需要冪等性&#xff1f; 核心定義&#xff1a;在分布式系統中&#xff0c;一個操作無論執行一次還是多次&#xff0c;最終結果都保持一致。 典型場景&#xff1a; 用戶重復點擊提交按鈕網絡抖動導致的請求重試消息隊列的重復消費支付系統的回調通知 不處理冪等的風…

如何恢復極狐GitLab?

極狐GitLab 是 GitLab 在中國的發行版&#xff0c;關于中文參考文檔和資料有&#xff1a; 極狐GitLab 中文文檔極狐GitLab 中文論壇極狐GitLab 官網 恢復極狐GitLab (BASIC SELF) 極狐GitLab 提供了一個命令行界面來恢復整個安裝&#xff0c;足夠靈活以滿足您的需求。 恢復…

面試高階問題:android后臺任務(如數據同步、定位)消耗過多電量,導致用戶投訴。你會如何分析和優化后臺任務的執行?

在現代移動設備生態中,安卓系統以其開放性和靈活性占據了全球智能手機市場的絕大部分份額。作為一款功能強大的操作系統,安卓允許應用程序在后臺執行各種任務,例如數據同步、定位服務、消息推送以及其他周期性更新。這些后臺任務在提升用戶體驗方面扮演了不可或缺的角色——…

最近在學習web搞大屏看板

人到中年&#xff0c;delphi發展越來越不行&#xff0c;就業環境是真差啊&#xff0c;沒辦法&#xff0c;學唄 中國地圖&#xff1a; // 中國地圖function getChinaMapChart() {// 初始化echarts實例var myEcharts echarts.init(document.getElementById("china_box"…

117.在 Vue 3 中使用 OpenLayers 實現 CTRL 控制拖拽和滾動縮放

? 前言 在使用 OpenLayers 開發地圖類項目時,我們有時會希望用戶必須按下 CTRL(或 Mac 的 Command ? 鍵)才能拖拽地圖或使用鼠標滾輪縮放。這種交互方式能夠避免用戶在瀏覽頁面時意外滑動或拖動地圖,尤其是在地圖嵌入頁面中時非常有用。 本文將帶你一步一步實現在 Vue …

MATLAB 控制系統設計與仿真 - 34

多變量系統知識回顧 - MIMO system 這一章對深入理解多變量系統以及魯棒分析至關重要 首先,對于如下系統: 當G(s)為單輸入,單輸出系統時: 如果: 則: 所以 因此,對于SISO,系統的增益跟w有關系, 當G(s)為MIMO時,例如2X2時, 假設輸入信號為:

ARCGIS PRO DSK 利用兩期地表DEM數據計算工程土方量

利用兩期地表DEM數據計算工程土方量需要準許以下數據&#xff1a; 當前地圖有3個圖層&#xff0c;兩個柵格圖層和一個矢量圖層 兩個柵格圖層&#xff1a;beforeDem為工程施工前的地表DEM模型 afterDem為工程施工后的地表DEM模型 一個矢量圖層&#xf…

最快打包WPF 應用程序

在 Visual Studio 中右鍵項目選擇“發布”&#xff0c;目標選“文件夾”&#xff0c;模式選“自包含”&#xff0c;生成含 .exe 的文件夾&#xff0c;壓縮后可直接發給別人或解壓運行&#xff0c;無需安裝任何東西。 最簡單直接的新手做法&#xff1a; 用 Visual Studio 的“…

物聯網通信協議——TCP與MQTT的對比

在物聯網通信中&#xff0c;MQTT和TCP的實現方式和原理完全不同&#xff0c;因為兩者屬于協議棧的不同層級&#xff0c;解決的問題也不同。以下從協議層級、工作機制和典型場景三個角度詳細解釋&#xff1a; 1. 協議層級與定位 特性TCPMQTT協議層級傳輸層&#xff08;第4層&am…

【信息系統項目管理師】高分論文:論信息系統項目的成本管理(媒體融合采編平臺)

更多內容請見: 備考信息系統項目管理師-專欄介紹和目錄 文章目錄 論文1、規劃項目成本管理2、估算成本3、制訂項目預算4、控制成本論文 2017年7月,我作為項目經理參與了 XX省媒體融合采編平臺的建設,該項目總共投資530萬元,其中服務器、存儲、網絡等硬件設備投資200萬元、軟…