python--------修改桌面文件內容

目錄

  • 1. 文件的讀寫
    • 1. 寫入文件
    • 2. 讀取文件
    • 3. 追加內容到文件
  • 2.file_path 的常見方法
    • 1. 絕對路徑
    • 2. 相對路徑
    • 3. 使用 os.path 模塊構建路徑
    • 5. 路徑操作
    • 5. 用戶主目錄路徑
  • 4. 修改文件內容
      • 1.將修改后的內容寫回文件
      • 2. 逐行處理文件內容
      • 3. 使用上下文管理器確保文件安全

1. 文件的讀寫

1. 寫入文件

要將內容寫入文件,你可以使用 open() 函數,并指定寫入模式(‘w’)。如果文件不存在,它將被創建;如果文件已存在,它將被覆蓋。

# 定義文件路徑
file_path = "example.txt"# 要寫入的內容
content = "This is a line of text.\nThis is another line of text.\n"# 打開文件并寫入內容
try:with open(file_path, 'w', encoding='utf-8') as file:file.write(content)print(f"Successfully wrote to {file_path}")
except IOError as e:print(f"An error occurred: {e}")

2. 讀取文件

要讀取文件的內容,你可以使用 open() 函數,并指定讀取模式(‘r’)。

# 定義文件路徑
file_path = "example.txt"# 打開文件并讀取內容
try:with open(file_path, 'r', encoding='utf-8') as file:content = file.read()print("File content:")print(content)
except IOError as e:print(f"An error occurred: {e}")

3. 追加內容到文件

如果你想在文件的末尾追加內容而不是覆蓋它,可以使用追加模式(‘a’)。

# 定義文件路徑
file_path = "example.txt"# 要追加的內容
additional_content = "This line is appended to the file.\n"# 打開文件并追加內容
try:with open(file_path, 'a', encoding='utf-8') as file:file.write(additional_content)print(f"Successfully appended to {file_path}")
except IOError as e:print(f"An error occurred: {e}")

代碼說明

  • with open(…) as file:: 使用 with 語句來打開文件,可以確保在文件操作完成后自動關閉文件,即使在操作過程中發生異常。
  • encoding=‘utf-8’: 指定文件的編碼格式為 UTF-8,以確保可以正確處理多語言字符。
  • 異常處理: 使用 try-except 塊來捕獲和處理可能的文件操作錯誤,例如文件不存在或權限問題。

2.file_path 的常見方法

以下是一些關于如何使用 file_path 的常見方法和示例:

1. 絕對路徑

絕對路徑是從文件系統的根目錄開始的完整路徑。

# Windows 示例
file_path = "C:\\Users\\username\\Desktop\\example.txt"# macOS/Linux 示例
file_path = "/home/username/Desktop/example.txt"

2. 相對路徑

相對路徑是相對于當前工作目錄的路徑。

如果 example.txt 位于當前目錄下的 subdir 子目錄中:

file_path = "subdir/example.txt"

3. 使用 os.path 模塊構建路徑

為了確保路徑在不同操作系統上的兼容性,建議使用 os.path 模塊來構建路徑。這樣可以自動處理路徑分隔符的差異。

import os# 獲取當前工作目錄
current_dir = os.getcwd()# 構建文件路徑
file_path = os.path.join(current_dir, "subdir", "example.txt")# 打印文件路徑
print(f"File path: {file_path}")

5. 路徑操作

os.path 模塊還提供了許多用于路徑操作的函數,例如:

os.path.exists(file_path): 檢查路徑是否存在。
os.path.isfile(file_path): 檢查路徑是否為文件。
os.path.isdir(file_path): 檢查路徑是否為目錄。
os.path.basename(file_path): 獲取路徑的最后一部分(通常是文件名)。
os.path.dirname(file_path): 獲取路徑的目錄部分。
import osfile_path = "/home/username/Desktop/example.txt"# 檢查路徑是否存在
if os.path.exists(file_path):print("Path exists.")# 檢查是否為文件
if os.path.isfile(file_path):print("This is a file.")# 獲取文件名
file_name = os.path.basename(file_path)
print(f"File name: {file_name}")# 獲取目錄名
dir_name = os.path.dirname(file_path)
print(f"Directory name: {dir_name}")

5. 用戶主目錄路徑

如果需要訪問用戶的主目錄,可以使用 os.path.expanduser(“~”)。


import os# 獲取用戶主目錄路徑
home_dir = os.path.expanduser("~")# 構建文件路徑
file_path = os.path.join(home_dir, "Desktop", "example.txt")# 打印文件路徑
print(f"File path: {file_path}")

總結
使用 os.path.join() 來構建路徑,以確保跨平臺兼容性。
使用 os.path 模塊中的函數來處理和操作路徑。
確保路徑的編碼和格式正確,以避免文件操作錯誤。

4. 修改文件內容

在讀取文件內容后,你可以對內容進行修改。例如,替換某些文本或添加新內容。

# 假設我們要將所有的 "old_text" 替換為 "new_text"
modified_content = content.replace("old_text", "new_text")# 打印修改后的內容
print("Modified content:")
print(modified_content)

1.將修改后的內容寫回文件

要將修改后的內容寫回文件,你可以使用 open() 函數和 write() 方法。

# 將修改后的內容寫回文件
try:with open(file_path, 'w', encoding='utf-8') as file:file.write(modified_content)print(f"Successfully wrote modified content to {file_path}")
except IOError as e:print(f"An error occurred: {e}")

2. 逐行處理文件內容

如果文件較大,或者你需要逐行處理內容,可以使用 for 循環逐行讀取文件。

file_path = "example.txt"# 逐行讀取和處理文件內容
try:with open(file_path, 'r', encoding='utf-8') as file:lines = file.readlines()# 修改每一行modified_lines = []for line in lines:modified_line = line.replace("old_text", "new_text")modified_lines.append(modified_line)# 將修改后的內容寫回文件with open(file_path, 'w', encoding='utf-8') as file:file.writelines(modified_lines)print(f"Successfully processed and wrote back to {file_path}")
except IOError as e:print(f"An error occurred: {e}")

3. 使用上下文管理器確保文件安全

使用 with 語句可以確保文件在操作完成后自動關閉,即使在操作過程中發生異常。

總結
讀取文件:使用 open() 和 read() 方法。
修改內容:可以使用字符串方法(如 replace())或逐行處理。
寫回文件:使用 open() 和 write() 方法。
逐行處理:適用于較大的文件或需要逐行操作的場景。

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

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

相關文章

愛普生VG7050EFN壓控晶振在小基站的應用優勢

在 5G 通信時代,小基站作為提升網絡覆蓋和容量的重要一環,小基站的穩定運行對于保障用戶流暢的通信體驗起著關鍵作用。而在小基站的核心組件中,時鐘信號源的質量直接影響著通信質量和設備性能。愛普生VG7050EFN晶振憑借其高性能、小尺寸和低功…

人工智能如何革新數據可視化領域?探索未來趨勢

在當今數字化時代,數據如同洶涌浪潮般不斷涌現。據國際數據公司(IDC)預測,全球每年產生的數據量將從 2018 年的 33ZB 增長到 2025 年的 175ZB。面對如此海量的數據,如何有效理解和利用這些數據成為了關鍵問題。數據可視…

精益數據分析(42/126):移動應用商業模式的深度剖析與實戰要點

精益數據分析(42/126):移動應用商業模式的深度剖析與實戰要點 在創業和數據分析的學習之路上,我們持續探索不同商業模式的奧秘,今天聚焦于移動應用商業模式。我希望和大家一起進步,深入解讀《精益數據分析…

未來 CSS:變量、容器查詢與新特性的探索

引言:CSS 演進與未來展望 在前端開發的快速發展浪潮中,CSS 已從簡單的樣式標記語言蛻變為構建現代設計系統的強大基礎。根據 HTTP Archive 的 Web Almanac 的調查,超過 86% 的網站已采用至少一項現代 CSS 特性,這一數字仍在持續攀…

概統期末復習--速成

隨機事件及其概率 加法公式 推三個的時候ABC,夾逼準則 減法準則 除法公式 相互獨立定義 兩種分析 兩個解法 古典概型求概率(排列組合) 分步相乘、分類相加 全概率公式和貝葉斯公式 兩階段問題 第一個小概率*A在小概率的概率。。。累計 …

論微服務架構設計及應用

目錄 摘要(300~330字) 正文(2000~2500字,2200字為宜) 背景介紹(500字做左右) 論點論據(1500字做左右)

【東楓科技】AMD / Xilinx Alveo? V80計算加速器卡

AMD / Xilinx Alveo? V80計算加速器卡 AMD/Xilinx Alveo ? V80計算加速器卡是一款功能強大的計算加速器,基于7nm Versal? 自適應SoC架構而打造。 AMD/Xilinx Alveo V80卡設計用于內存密集型任務。 這些任務包括HPC、數據分析、網絡安全、傳感器處理、計算存儲和…

基于大模型的自然臨產陰道分娩全流程預測與方案研究報告

目錄 一、引言 1.1 研究背景與目的 1.2 研究意義 1.3 國內外研究現狀 二、大模型技術原理與應用概述 2.1 大模型基本原理 2.2 在醫療領域的應用現狀 2.3 用于分娩預測的優勢 三、術前預測與準備方案 3.1 產婦身體狀況評估指標 3.2 大模型預測流程與方法 3.3 基于預…

macbook install chromedriver

# 打開 Chrome 訪問以下地址查看版本 chrome://version/# 終端查看版本號 (示例輸出: 125.0.6422.113) /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --version測試:

LeetCode 790 多米諾和托米諾平鋪 題解

對于本題不去看LeetCode的評論區和題解很難想到如何去dp,畢竟就算再怎么枚舉也很難找到適用于面向結果的規律。所以對于題解我建議大家還是去看一下靈神給的題解,以下是靈神匯總的圖,如果能看懂的話,對于解決題目有很大的幫助。 根…

Day17 聚類算法(K-Means、DBSCAN、層次聚類)

一、聚類算法 1. K-Means 聚類 原理:K-Means 是一種基于劃分的聚類算法,目標是將 n n n 個樣本劃分到 k k k 個簇中,使得簇內樣本的相似度盡可能高,簇間樣本的相似度盡可能低。算法通過迭代的方式,不斷更新簇的質心…

【編程干貨】本地用 Ollama + LLaMA 3 實現 Model Context Protocol(MCP)對話服務

模型上下文協議(MCP)本身提供的是一套標準化的通信規則和接口,簡化了客戶端應用的開發。 MCP 實際上是一套規范,官方把整套協議分成「傳輸層 協議層 功能層」三大塊,并對初始化握手、能力協商、數據/工具暴露、安全…

永磁同步電機控制算法-基于新型趨近律的反饋線性化滑模控制

一、原理介紹 針對永磁同步電機傳統PID矢量控制方式無法實現d、q軸電流完全解耦控制的問題,運用反饋線性化理論實現永磁同步電機轉速和d軸電流解耦。針對反饋線性化導致的魯棒性下降問題,利用滑模控制方式提高系統魯棒性,引入新型雙冪次趨近…

德爾菲法和層次分析法是什么

德爾菲法和層次分析法是什么 德爾菲法和層次分析法是兩種常用的決策分析方法 德爾菲法 定義:德爾菲法是一種采用背對背的通信方式征詢專家小組成員的預測意見,經過幾輪征詢,使專家小組的預測意見趨于集中,最后做出符合市場未來發展趨勢的預測結論。實施步驟 組成專家小組…

【windows】win10部分版本的sxs文件下載

Win10部分版本的sxs文件下載 win10 1703 鏈接: https://pan.baidu.com/s/13O5djVSWIhIjBP1ZVtORAA?pwdsdpp 提取碼: sdpp win10 1809 鏈接: https://pan.baidu.com/s/1vUEMQWqWcyTicHLJNox99w?pwddfx4 提取碼: dfx4 win10 1903,1909 鏈接: https://pan.baidu.com/s/1MoKcm3N…

Java項目部署-Springboot+Vue網頁部署上線全教程

SpringbootVue網頁部署上線全教程 文章目錄 SpringbootVue網頁部署上線全教程1.環境說明2.Mysql安裝部署2.1 安裝并修改密碼2.2 防火墻開放 3.Spring Boot項目打包3.1 配置公網ip3.2 安裝 Maven3.3 使用 Maven 打包 Spring Boot 項目3.4 Centos運行Jar包3.4.1 安裝 Java 1.8 環…

FISCO BCOS【初體驗筆記】

飛梭區塊鏈搭建初體驗筆記 環境部署創建四個節點的飛梭區塊鏈用的VMware17 centos 7.9 區塊鏈是飛梭2.0用的webase-frontJava環境的正確安裝Webase-front搭建 智能合約設計一點合約調試筆記 智能合約abi文件轉為go文件后端項目配置相關工具linux常用命令(防忘記&…

內容社區系統開發文檔

1 系統分析 1.1 項目背景 1.2 需求分析 2 系統設計 2.1 系統功能設計 2.2 數據庫設計 2.2.1 數據庫需求分析 2.2.2 數據庫概念結構設計 2.2.3 數據庫邏輯結構設計 2.2.4 數據庫物理結構設計 2.2.5 數據庫視圖設計 2.2.6 函數設計 2.2.7 存儲過程設計 2.2.8 觸發器…

BigemapPro小技巧:調整線方向及延長線

今天為大家分享兩個 BigemapPro 處理矢量數據的小技巧,分別是調整線方向和延長線要素,掌握這些技巧能夠大幅提升數據處理的效率和準確性。 01 調整線方向 在BigemapPro中,線要素其實是帶有方向屬性的,正常情況下看不出來 但是如果…

nt!MiSessionAddProcess函數分析和nt!MmSessionSpace全局變量的關系

第一部分: 1: kd> g Breakpoint 42 hit nt!MiSessionAddProcess: 80ab2fbe 55 push ebp 1: kd> kc # 00 nt!MiSessionAddProcess 01 nt!MmCreateProcessAddressSpace 02 nt!PspCreateProcess 03 nt!NtCreateProcessEx 04 nt!_KiSystemServic…