欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

基礎(chǔ)操作:文件讀寫(xiě)入門(mén)

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

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

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

寫(xiě)入文件也很簡(jiǎn)單:

# 寫(xiě)入文本文件
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è)文件。來(lái)看看這個(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 = '測(cè)試文件夾'
renamed = batch_rename(folder, 'old', 'new')
print(f'成功重命名了{(lán)renamed}個(gè)文件')

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

這個(gè)才是真正的干貨!來(lái)看看如何寫(xiě)一個(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)事件處理器基類(lèi)

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)建觀(guān)察者實(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)控文件夾中的變化,比如新建文件、修改文件等。對(duì)于需要監(jiān)控日志文件或者配置文件的場(chǎng)景特別有用!

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

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

常見(jiàn)問(wèn)題解答

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

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

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

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

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

相關(guān)文章

  • python 計(jì)算兩個(gè)日期相差多少個(gè)月實(shí)例代碼

    python 計(jì)算兩個(gè)日期相差多少個(gè)月實(shí)例代碼

    這篇文章主要介紹了python 計(jì)算兩個(gè)日期相差多少個(gè)月實(shí)例代碼,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-05-05
  • python文件處理詳解

    python文件處理詳解

    這篇文章主要介紹了Python 處理文件的幾種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-10-10
  • Python入門(mén)_淺談數(shù)據(jù)結(jié)構(gòu)的4種基本類(lèi)型

    Python入門(mén)_淺談數(shù)據(jù)結(jié)構(gòu)的4種基本類(lèi)型

    下面小編就為大家?guī)?lái)一篇Python入門(mén)_淺談數(shù)據(jù)結(jié)構(gòu)的4種基本類(lèi)型。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • Python實(shí)現(xiàn)定時(shí)自動(dòng)關(guān)閉的tkinter窗口方法

    Python實(shí)現(xiàn)定時(shí)自動(dòng)關(guān)閉的tkinter窗口方法

    今天小編就為大家分享一篇Python實(shí)現(xiàn)定時(shí)自動(dòng)關(guān)閉的tkinter窗口方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • 用Python制作mini翻譯器的實(shí)現(xiàn)示例

    用Python制作mini翻譯器的實(shí)現(xiàn)示例

    這篇文章主要介紹了用Python制作mini翻譯器的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Python爬蟲(chóng)中urllib庫(kù)的進(jìn)階學(xué)習(xí)

    Python爬蟲(chóng)中urllib庫(kù)的進(jìn)階學(xué)習(xí)

    本篇文章主要介紹了Python爬蟲(chóng)中urllib庫(kù)的進(jìn)階學(xué)習(xí)內(nèi)容,對(duì)此有興趣的朋友趕緊學(xué)習(xí)分享下。
    2018-01-01
  • 一文搞懂Python中pandas透視表pivot_table功能

    一文搞懂Python中pandas透視表pivot_table功能

    透視表是一種可以對(duì)數(shù)據(jù)動(dòng)態(tài)排布并且分類(lèi)匯總的表格格式?;蛟S大多數(shù)人都在Excel使用過(guò)數(shù)據(jù)透視表,也體會(huì)到它的強(qiáng)大功能,而在pandas中它被稱(chēng)作pivot_table,今天通過(guò)本文給大家介紹Python中pandas透視表pivot_table功能,感興趣的朋友一起看看吧
    2021-11-11
  • 在Python程序中操作MySQL的基本方法

    在Python程序中操作MySQL的基本方法

    這篇文章主要介紹了再Python程序中操作MySQL的基本方法,主要借助了MYSQLdb module,需要的朋友可以參考下
    2015-07-07
  • python 調(diào)用pyautogui 實(shí)時(shí)獲取鼠標(biāo)的位置、移動(dòng)鼠標(biāo)的方法

    python 調(diào)用pyautogui 實(shí)時(shí)獲取鼠標(biāo)的位置、移動(dòng)鼠標(biāo)的方法

    今天小編就為大家分享一篇python 調(diào)用pyautogui 實(shí)時(shí)獲取鼠標(biāo)的位置、移動(dòng)鼠標(biāo)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • python3 實(shí)現(xiàn)的對(duì)象與json相互轉(zhuǎn)換操作示例

    python3 實(shí)現(xiàn)的對(duì)象與json相互轉(zhuǎn)換操作示例

    這篇文章主要介紹了python3 實(shí)現(xiàn)的對(duì)象與json相互轉(zhuǎn)換操作,結(jié)合實(shí)例形式分析了Python3使用json模塊針對(duì)json格式數(shù)據(jù)轉(zhuǎn)換操作的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-08-08

最新評(píng)論