01Python基礎_06文件讀寫

来源:http://www.cnblogs.com/zhangyide/archive/2017/11/21/7874944.html
-Advertisement-
Play Games

1. 讀取文件 使用 open 函數或者 file 函數來讀文件,使用文件名的字元串作為輸入參數 遍歷列印文件中每一行: 或: 2. 寫文件 open()預設已r模式打開文件,要想寫入,需已w模式打開文件。以w模式打開時,如果文件不存在則創建文件,如果文件存在則覆蓋之前的內容。 3. 關閉文件 關閉 ...


  1. 讀取文件

  使用 open 函數或者 file 函數來讀文件,使用文件名的字元串作為輸入參數

1 #讀取文件內容
2 
3 f = open('test.txt')
4 
5 print(f.read())             #讀取文件全部內容
6 print(f.readline())         #讀取文件第一行
7 print(f.readlines())        #返回一個列表,每個元素代表一行
8 
9 f.close()                   #關閉文件

  

方法描述
read() 一次讀取文件所有內容,返回一個str
read(size) 每次最多讀取指定長度的內容,返回一個str;在Python2中size指定的是位元組長度,在Python3中size指定的是字元長度
readlines() 一次讀取文件所有內容,按行返回一個list
readline() 每次只讀取一行內容

  遍歷列印文件中每一行:

1 with open('song.txt', 'r', encoding='utf-8') as f:
2     for line in f.readlines():
3         print(line)

  或:

1 with open('song.txt', 'r', encoding='utf-8', newline='') as f:
2     for line in f:
3         print(line)

  2. 寫文件

  open()預設已r模式打開文件,要想寫入,需已w模式打開文件。以w模式打開時,如果文件不存在則創建文件,如果文件存在則覆蓋之前的內容。

1 #寫入文件
2 
3 f = open('test.txt', 'w')   #使用w模式打開文件
4 f.write('hello world!')     #寫入內容
5 f.close()                   #關閉文件
文件打開模式描述
r 以只讀模式打開文件,並將文件指針指向文件頭;如果文件不存在會報錯
w 以只寫模式打開文件,並將文件指針指向文件頭;如果文件存在則將其內容清空,如果文件不存在則創建
a 以只追加可寫模式打開文件,並將文件指針指向文件尾部;如果文件不存在則創建
r+ 在r的基礎上增加了可寫功能
w+ 在w的基礎上增加了可讀功能
a+ 在a的基礎上增加了可讀功能
b 讀寫二進位文件(預設是t,表示文本),需要與上面幾種模式搭配使用,如ab,wb, ab, ab+(POSIX系統,包括Linux都會忽略該字元)

  3. 關閉文件

  關閉文件可以保證內容已經被寫入文件,而不關閉可能會出現意想不到的結果。使用close()關閉文件。

  可以用try...finally來保證文件無論如何都能被關閉:

1 #寫入文件
2 try:
3     f = open('test.txt', 'w+')      #使用w+模式打開文件
4     f.write('hello world!')         #寫入內容
5 finally:
6     if f:
7         f.close()
8         print('file has been closed. ')

  事實上,Python提供了更安全的方法,當 with 塊的內容結束後,Python會自動調用它的close 方法,確保讀寫的安全:

1 #寫入文件
2 with open('test.txt', 'w') as f:
3     f.write('hello world!')         #寫入內容
4 print(f.closed)             #返回True

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1. 安裝gcc(centos 7之後一般已自帶,可以在第6步失敗後再安裝) yum install gcc gcc-c++ 2. 安裝pcre yum install -y pcre pcre-devel 3. 安裝zlib yum install -y zlib zlib-devel 4. 安裝 ...
  • 題目描述 陶陶是個貪玩的孩子,他在地上丟了A個瓶蓋,為了簡化問題,我們可以當作這A個瓶蓋丟在一條直線上,現在他想從這些瓶蓋里找出B個,使得距離最近的2個距離最大,他想知道,最大可以到多少呢? 輸入輸出格式 輸入格式: 第一行,兩個整數,A,B。(B<=A<=100000) 第二行,A個整數,分別為這 ...
  • 當遇到以下場景: 其他人寫的單元測試影響統計結果 一些需要調用外部介面的測試暫不運行 需要在非本機環境上運行一些不回滾的單元測試 則有必要選擇以下方法跳過部分測試。 在測試用例前加上註解 @Ignore,例如: @Ignore @Test public void testGetAreaChirldr... ...
  • 學習python前需要有許多準備知識,整理大致如下: 以上儘快完成,並搭建項目。 ...
  • 一、同步(Synchronous)和非同步(Asynchronous) 同步和非同步通常用來形容一次方法調用,同步方法,調用者必須等到方法調用返回後,才能繼續後續的行為,非同步方法調用會立即返回,調用者就可以繼續後續的操作 二、併發和並行 併發和並行都可以表示兩個或多個任務一起執行,但偏重點點不同,併發偏 ...
  • Python之Django環境搭建(MAC+pycharm+Django++postgreSQL) 轉載請註明地址:http://www.cnblogs.com/funnyzpc/p/7828614.html 搭建Django環境似乎是一件很簡單的事情,其實不然,苦命的我折騰了大半天才好, 遂在此總 ...
  • 單例模型 類圖分為3個部分,一次是類名,屬性,方法。以<<開頭和以>>結尾為註釋信息。修飾符+代表public,-代表private,#代表protected。什麼都沒有代表包可見(java) 帶下劃線的屬性或方法代表說靜態。 單例模式特點: 1 構造方法私有。 2 只想自己實例的私有靜態引用 3 ...
  • 題目描述 Caima王國中有一個奇怪的監獄,這個監獄一共有P個牢房,這些牢房一字排開,第i個緊挨著第i+1個(最後一個除外)。現在正好牢房是滿的。 上級下發了一個釋放名單,要求每天釋放名單上的一個人。這可把看守們嚇得不輕,因為看守們知道,現在牢房中的P個人,可以相互之間傳話。如果某個人離開了,那麼原 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...