偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

告別繁瑣操作!Python 編程的十個(gè)文件處理技巧讓你輕松上手!

開發(fā)
文件處理是自動(dòng)化辦公、數(shù)據(jù)分析和系統(tǒng)管理的核心技能。下面十個(gè)Python編程的文件處理技巧讓你輕松上手!

文件處理是自動(dòng)化辦公、數(shù)據(jù)分析和系統(tǒng)管理的核心技能。掌握Python文件操作可幫助你:

  • 自動(dòng)化批量處理文檔 (如合并1000個(gè)Excel表格)
  • 構(gòu)建簡易數(shù)據(jù)庫存儲(chǔ)結(jié)構(gòu)化數(shù)據(jù)
  • 實(shí)現(xiàn)日志系統(tǒng)開發(fā)與維護(hù)

適用人群:零基礎(chǔ)Python開發(fā)者。

前置條件:了解變量、循環(huán)、函數(shù)基礎(chǔ)語法 (Python 3.6+環(huán)境)。

技巧1:安全關(guān)閉文件的終極方案

注意:手動(dòng)調(diào)用close()易引發(fā)資源泄露!

??示例:

# 標(biāo)準(zhǔn)版
with open('test.txt', 'w') as f:  # 使用with語句自動(dòng)管理資源
    f.write('Hello World')  # 寫入文本
    
# 優(yōu)化版 (二進(jìn)制寫入) 
with open('binary.bin', 'wb') as f:
    f.write(b'\x00\x01\x02')  # 注意b前綴表示字節(jié)流

原理:with語句通過上下文管理器確保文件句柄在退出縮進(jìn)塊時(shí)自動(dòng)關(guān)閉,即使發(fā)生異常也能可靠回收資源 (Python官方文檔) 。

技巧2:靈活控制文件模式

警告:'w'模式會(huì)清空已有內(nèi)容!

模式

行為

適用場(chǎng)景

r

只讀

配置文件解析

w

覆蓋寫入

日志文件創(chuàng)建

a

追加寫入

運(yùn)行時(shí)數(shù)據(jù)記錄

x

獨(dú)占創(chuàng)建

防止意外覆蓋

??示例:

# 追加模式寫入
with open('log.txt', 'a') as f:
    f.write(f"[{time.ctime()}] System Running\n")

技巧3:高效逐行處理大文件

注意:readlines()一次性加載內(nèi)存,不適合GB級(jí)文件

??示例:

# 逐行處理 (內(nèi)存友好型) 
with open('huge_file.txt', 'r') as f:
    for line in f:  # 迭代器逐行讀取
        if 'error' in line:
            print(line.strip())

技巧4:JSON數(shù)據(jù)持久化

首次出現(xiàn)術(shù)語:JSON (JavaScript Object Notation)

??示例:

import json

data = {'name': 'Alice', 'age': 25}

# 標(biāo)準(zhǔn)版 (序列化) 
with open('data.json', 'w') as f:
    json.dump(data, f, indent=2)  # indent參數(shù)美化輸出

# 優(yōu)化版 (反序列化) 
with open('data.json', 'r') as f:
    loaded_data = json.load(f)
    print(loaded_data['name'])  # 輸出: Alice

技巧5:CSV文件智能讀寫

首次出現(xiàn)術(shù)語:CSV (Comma Separated Values)

??示例:

import csv

# 寫入帶表頭的CSV
with open('users.csv', 'w') as f:
    writer = csv.DictWriter(f, fieldnames=['id','name'])
    writer.writeheader()
    writer.writerow({'id':1, 'name':'Bob'})

# 讀取CSV并過濾
with open('users.csv', 'r') as f:
    reader = csv.DictReader(f)
    for row in reader:
        if int(row['id']) > 0:
            print(row['name'])  # 輸出: Bob

技巧6:文件重命名藝術(shù)

注意:源路徑和目標(biāo)路徑必須存在有效權(quán)限

??示例:

import os

# 安全重命名函數(shù)
def safe_rename(src, dst):
    if not os.path.exists(src):
        raise FileNotFoundError(f"源文件 {src} 不存在")
    os.rename(src, dst)  # 注意:目標(biāo)目錄必須存在

safe_rename('old_name.txt', 'new_name.txt')

技巧7:路徑操作現(xiàn)代化方案

首次出現(xiàn)術(shù)語:Pathlib (Python 3.4+官方推薦)

??示例:

from pathlib import Path

p = Path('data/2023/logs.txt')

print(p.parent)      # 輸出: data/2023
print(p.suffix)      # 輸出: .txt
print(p.exists())    # 判斷文件是否存在

# 路徑拼接
new_path = p.with_name('archive.txt')
p.rename(new_path)

技巧8:文件操作工具箱

首次出現(xiàn)術(shù)語:Shutil (Shell Utility)

??示例:

import shutil

# 三步文件操作
shutil.copy('source.txt', 'backup.txt')   # 復(fù)制
shutil.move('old_dir/file.txt', 'new_dir/')  # 移動(dòng)
os.remove('temp_file.tmp')                 # 刪除

技巧9:二進(jìn)制文件處理

注意:文本模式讀取二進(jìn)制文件會(huì)拋出異常!

??示例:

# 圖片文件復(fù)制
with open('photo.jpg', 'rb') as src:
    with open('photo_copy.jpg', 'wb') as dst:
        dst.write(src.read())

技巧10:日志文件管理

首次出現(xiàn)術(shù)語:RotatingFileHandler

??示例:

import logging
from logging.handlers import RotatingFileHandler

handler = RotatingFileHandler('app.log', maxBytes=1024*1024, backupCount=5)
logging.basicConfig(
    level=logging.INFO,
    handlers=[handler],
    format='%(asctime)s - %(levelname)s - %(message)s'
)

logging.info('系統(tǒng)啟動(dòng)')  # 自動(dòng)分割1MB日志文件

[實(shí)戰(zhàn)案例]:日志分析器

需求:統(tǒng)計(jì)Nginx日志中各IP訪問次數(shù)

from collections import defaultdict

ip_counter = defaultdict(int)

with open('access.log', 'r') as f:
    for line in f:
        ip = line.split()[0]  # 提取IP地址
        ip_counter[ip] += 1

# 輸出Top 10
for ip, count in sorted(ip_counter.items(), key=lambda x: -x[1])[:10]:
    print(f"{ip}: {count}次")

分析:該案例綜合運(yùn)用了文件逐行讀取、字符串切片、字典統(tǒng)計(jì)等技巧,處理10萬條日志僅需0.8秒 (i5-1135G7測(cè)試環(huán)境) 。

責(zé)任編輯:趙寧寧 來源: 小白PythonAI編程
相關(guān)推薦

2025-07-11 01:05:41

2025-08-05 07:59:53

Python編程命令

2024-10-07 11:02:08

requests編程PythonAI

2024-01-30 00:40:10

2019-07-15 15:59:32

高維數(shù)據(jù)降維數(shù)據(jù)分析

2025-07-28 06:49:48

Python開發(fā)圖像處理

2025-08-01 09:49:12

2025-05-29 08:35:39

Python代碼開發(fā)

2025-06-25 10:02:55

2023-10-16 07:55:15

JavaScript對(duì)象技巧

2025-01-24 07:44:31

LinuxsystemdAnsible

2023-05-24 10:24:56

代碼Python

2025-04-30 05:58:20

2025-07-22 07:43:26

2025-03-10 08:00:00

開源VS Code開發(fā)

2024-12-03 14:33:42

Python遞歸編程

2022-05-12 08:12:51

PythonPip技巧

2025-07-29 09:41:55

2025-06-11 08:25:00

Python編程開發(fā)

2019-07-11 14:45:52

簡歷編程項(xiàng)目
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)