最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python如何一次性搞定文件讀寫處理難題

 更新時(shí)間:2025年05月28日 09:26:06   作者:軟件測試雜談  
每個(gè)程序員都離不開文件處理,無論是讀取配置文件、處理Excel表格,還是保存程序運(yùn)行日志,本文就來使用最通俗的語言,帶你徹底掌握Python文件處理吧

為什么要學(xué)習(xí)文件處理?

每個(gè)程序員都離不開文件處理。無論是讀取配置文件、處理Excel表格,還是保存程序運(yùn)行日志,文件操作都是必備技能。但是很多教程要么太淺顯,要么太復(fù)雜,今天我就用最通俗的語言,帶你徹底掌握Python文件處理!

基礎(chǔ)操作:文件讀寫入門

先從最基礎(chǔ)的開始。假設(shè)你有一個(gè)叫notes.txt的文本文件,想要讀取它的內(nèi)容:

# 最簡單的文件讀取
with open('notes.txt', 'r', encoding='utf-8') as f:
    content = f.read()
print(content)

這里有個(gè)小技巧:一定要加上encoding='utf-8',不然中文就會(huì)變成亂碼,這可是我踩過的坑啊!

寫入文件也很簡單:

# 寫入文本文件
with open('output.txt', 'w', encoding='utf-8') as f:
    f.write('這是第一行\(zhòng)n')
    f.write('這是第二行\(zhòng)n')

進(jìn)階技巧:批量文件處理

但是實(shí)際工作中,我們經(jīng)常需要處理多個(gè)文件。來看看這個(gè)實(shí)用的例子,批量重命名文件:

import os

def batch_rename(folder_path, old_str, new_str):
    """批量重命名文件,將文件名中的old_str替換為new_str"""
    count = 0
    for filename in os.listdir(folder_path):
        if old_str in filename:
            old_file = os.path.join(folder_path, filename)
            new_file = os.path.join(folder_path, filename.replace(old_str, new_str))
            os.rename(old_file, new_file)
            count += 1
    return count

# 使用示例
folder = '測試文件夾'
renamed = batch_rename(folder, 'old', 'new')
print(f'成功重命名了{(lán)renamed}個(gè)文件')

高級(jí)應(yīng)用:文件監(jiān)控器

這個(gè)才是真正的干貨!來看看如何寫一個(gè)文件變化監(jiān)控器,可以實(shí)時(shí)監(jiān)控文件夾的變化:

# 導(dǎo)入所需模塊
import time
from watchdog.observers import Observer  # 用于監(jiān)控文件系統(tǒng)事件
from watchdog.events import FileSystemEventHandler  # 文件系統(tǒng)事件處理器基類

class MyHandler(FileSystemEventHandler):
   def on_modified(self, event):
       """當(dāng)監(jiān)控的文件發(fā)生修改時(shí)觸發(fā)"""
       if not event.is_directory:  # 僅處理文件變化,忽略目錄
           print(f'文件發(fā)生變化:{event.src_path}')
           
   def on_created(self, event):
       """當(dāng)有新文件創(chuàng)建時(shí)觸發(fā)"""
       if not event.is_directory:  # 僅處理文件創(chuàng)建,忽略目錄
           print(f'新建文件:{event.src_path}')

def monitor_folder(path):
   """
   監(jiān)控指定文件夾的變化
   參數(shù):
       path: 要監(jiān)控的文件夾路徑
   """
   event_handler = MyHandler()  # 創(chuàng)建事件處理器實(shí)例
   observer = Observer()  # 創(chuàng)建觀察者實(shí)例
   observer.schedule(event_handler, path, recursive=False)  # 設(shè)置監(jiān)控的路徑(不遞歸子目錄)
   observer.start()  # 啟動(dòng)監(jiān)控
   
   try:
       while True:
           time.sleep(1)  # 每秒檢查一次
   except KeyboardInterrupt:  # 捕獲Ctrl+C中斷信號(hào)
       observer.stop()  # 停止監(jiān)控
   observer.join()  # 等待observer完全停止

# 程序入口
if __name__ == '__main__':
   monitor_folder('要監(jiān)控的文件夾路徑')  # 傳入要監(jiān)控的文件夾路徑

這個(gè)程序可以實(shí)時(shí)監(jiān)控文件夾中的變化,比如新建文件、修改文件等。對于需要監(jiān)控日志文件或者配置文件的場景特別有用!

實(shí)戰(zhàn)小貼士

  • 處理大文件時(shí),用read()一次性讀取可能會(huì)占用太多內(nèi)存,建議使用for line in f:逐行讀取
  • 寫文件時(shí)記得及時(shí)關(guān)閉,最好使用with語句自動(dòng)處理
  • 路徑操作推薦使用os.path模塊,這樣能保證代碼在不同操作系統(tǒng)上都能正常運(yùn)行

常見問題解答

問:為什么我的文件路徑總是報(bào)錯(cuò)?答:Windows系統(tǒng)中,路徑分隔符是反斜杠``,但在Python字符串中需要寫成\,或者直接用正斜杠/,Python會(huì)自動(dòng)處理。

問:如何判斷文件是否存在?答:可以使用os.path.exists()函數(shù):

import os
if os.path.exists('文件路徑'):
    print('文件存在')
else:
    print('文件不存在')

文件處理是Python中非常重要的一個(gè)技能點(diǎn)。掌握了這些內(nèi)容,基本上日常工作中遇到的文件處理需求都能搞定了。

到此這篇關(guān)于Python如何一次性搞定文件讀寫處理難題的文章就介紹到這了,更多相關(guān)Python文件處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Python中ping命令的深層原理

    詳解Python中ping命令的深層原理

    Ping命令是網(wǎng)絡(luò)管理員和普通用戶最常用的網(wǎng)絡(luò)工具之一,可以測試網(wǎng)絡(luò)連接是否正常,本文主要來和大家探討Ping命令的工作原理和用法,需要的可以參考一下
    2023-06-06
  • 基于Python編寫一個(gè)語音合成系統(tǒng)

    基于Python編寫一個(gè)語音合成系統(tǒng)

    這篇文章主要介紹了如何利用Python制作一個(gè)語音合成系統(tǒng),文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python有一定的幫助,感興趣的小伙伴可以了解一下
    2022-03-03
  • Django csrf校驗(yàn)的實(shí)現(xiàn)

    Django csrf校驗(yàn)的實(shí)現(xiàn)

    這篇文章主要介紹了Django csrf校驗(yàn)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Python3實(shí)現(xiàn)的簡單工資管理系統(tǒng)示例

    Python3實(shí)現(xiàn)的簡單工資管理系統(tǒng)示例

    這篇文章主要介紹了Python3實(shí)現(xiàn)的簡單工資管理系統(tǒng),涉及Python文件讀寫、數(shù)據(jù)遍歷、判斷等相關(guān)操作技巧,需要的朋友可以參考下
    2019-03-03
  • Python切片操作去除字符串首尾的空格

    Python切片操作去除字符串首尾的空格

    這篇文章主要介紹了Python切片操作去除字符串首尾的空格 的相關(guān)資料,需要的朋友可以參考下
    2019-04-04
  • ubuntu安裝sublime3并配置python3環(huán)境的方法

    ubuntu安裝sublime3并配置python3環(huán)境的方法

    這篇文章主要介紹了ubuntu安裝sublime3并配置python3環(huán)境的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-03-03
  • python中引用與復(fù)制用法實(shí)例分析

    python中引用與復(fù)制用法實(shí)例分析

    這篇文章主要介紹了python中引用與復(fù)制用法,以實(shí)例形式詳細(xì)分析了python中引用與復(fù)制的功能與相關(guān)使用技巧,需要的朋友可以參考下
    2015-06-06
  • 淺談Python3.10 和 Python3.9 之間的差異

    淺談Python3.10 和 Python3.9 之間的差異

    多年來,Python 進(jìn)行了大量升級(jí),并且在新版本中添加了許多功能。本文就詳細(xì)的介紹 一下Python3.10 和 Python3.9差異,感興趣的朋友可以了解一下
    2021-09-09
  • 使用Python matplotlib作圖時(shí),設(shè)置橫縱坐標(biāo)軸數(shù)值以百分比(%)顯示

    使用Python matplotlib作圖時(shí),設(shè)置橫縱坐標(biāo)軸數(shù)值以百分比(%)顯示

    這篇文章主要介紹了使用Python matplotlib作圖時(shí),設(shè)置橫縱坐標(biāo)軸數(shù)值以百分比(%)顯示,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • 手把手教你用Django執(zhí)行原生SQL的方法

    手把手教你用Django執(zhí)行原生SQL的方法

    這篇文章主要介紹了手把手教你用Django執(zhí)行原生SQL的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02

最新評論

牙克石市| 丹江口市| 衡山县| 阿荣旗| 南华县| 南京市| 大兴区| 察哈| 碌曲县| 沛县| 右玉县| 丹东市| 玉树县| 襄汾县| 长顺县| 高陵县| 城口县| 小金县| 萨嘎县| 庆安县| 广河县| 平邑县| 德庆县| 台北县| 嵊州市| 阜平县| 太保市| 伊春市| 明光市| 微山县| 万盛区| 牡丹江市| 历史| 车险| 安徽省| 安徽省| 天气| 永仁县| 镇宁| 兴城市| 华坪县|