python入到到實戰--第十章----文件

第十章  文件和異常python

1、從文件中讀取數據git

with open('pi_digits.txt') as file_object:
  contents = file_ object.read()
  print(contents)
函數open() :接受一個參數---要打開的文件名稱(在當前執行的文件(即.py程序文件) 所在的目錄中查找文件)

函數

函數open() 返回一個表示文件的對象。 在這裏, open('pi_digits.txt') 返回一個表示文件pi_digits.txt 的對象; Python將這個對象存儲在咱們將
在後面使用的變量中。
關鍵字with 在再也不須要訪問文件後將其關閉。  使用關鍵字with 時, open() 返回的文件對象只在with 代碼塊內可用 ;
在這個程序中, 注意到咱們調用了open() , 但沒有調用close() ; 你也能夠調用open() close() 來打開和關閉文件, 但這樣作時, 若是程序存在bug
spa

致使close() 語句未執行, 文件將不會關閉。這看似微不足道, 但未妥善地關閉文件可能會致使數據丟失或受損。 若是在程序中過早地調用close() 對象

你會發現須要使用文件時它已關閉 (沒法訪問) , 這會致使更多的錯誤。並不是在任何狀況下都能輕鬆肯定關閉文件的恰當時機,ip

但經過使用前面所示的結構, 可以讓Python去肯定: 你只管打開文件, 並在須要時使用它, Python自會在合適的時候自動將其關閉。字符串

 

有了表示pi_digits.txt的文件對象後, 咱們使用方法read() (前述程序的第2行) 讀取這個文件的所有內容, 並將其做爲一個長長的字符串存儲在變量contents
string

 read() 到達文件末尾時返回一個空字符串, 而將這個空字符串顯示出來時就是一個空行。 要刪除多出來的空行, 可在print 語句中使用rstrip() 


it

文件路徑io

 將相似pi_digits.txt這樣的簡單文件名傳遞給函數open() 時, Python將在當前執行的文件(即.py程序文件) 所在的目錄中查找文件
Python打開不與程序文件位於同一個目錄中的文件, 須要提供文件路徑 , 它讓Python到系統的特定位置去查找。
相對文件路徑: 相對於當前運行的程序所在目錄的 位置
絕對路徑:文件在計算機中的準確位置

LinuxOS X中 ,以/   斜槓做爲文件路徑分割符,在Windows中使用\   反斜槓做爲文件路徑分隔符


==========
逐行讀取

==========

filename = 'pi_digits.txt'
with open(filename) as file_object:
  for line in file_object:
    print(line)

以上代碼,每打印一行時,都會產生一行空白行,由於:在這個文件中, 每行的末尾都有一個看不見的換行符, 而print 語句也會加上一個換行符,

所以每行末尾都有兩個換行符: 一個來自文件, 另外一個來自print 語句。 要消除這些多餘的空白行, 可在print 語句中使用rstrip()

filename = 'pi_digits.txt'
with open(filename) as file_object:
  for line in file_object:
    print(line.rstrip())


建立一個包含文件各行內容的列表 

filename = 'pi_digits.txt'
with open(filename) as file_object:
  lines = file_object.readlines()

for line in lines:
    
print(line.rstrip())

方法readlines() 從文件中讀取每一行, 並將其存儲在一個列表中;

 

使用文件內容

包含一百萬位的大型文件

filename = 'pi_million_digits.txt'


with open(filename) as file_object:
  lines = file_object.readlines()
  pi_string = ''
for line in lines:
  pi_string += line.strip()
print(pi_string[:52] + "...")
print(len(pi_string))

 

=========

寫入文件--若是寫入的文件不存在,open()將自動建立文件

=========

寫入空文件

調用open() 時須要提供另外一個實參, 告訴Python你要寫入打開的文件。

filename = 'programming.txt'
with open(filename, 'w') as file_object:
  file_object.write("I love programming.")

調用open() 時提供了兩個實參 。 第一個實參也是要打開的文件的名稱; 第二個實參('w' ) 告訴Python, 咱們要以寫入模式 打開這個文件。 打開文件
時, 可指定讀取模式 ('r' ) 、 寫入模式 ('w' ) 、 附加模式 ('a' ) 或讓你可以讀取和寫入文件的模式('r+' ) 。 若是你省略了模式實參, Python將以默認的只讀模式打
開文件。 

注意:寫入模式('w')要注意,若是文件存在,python返回文件對象前,會清空該文件。

  python只能將字符串寫入文件,數值數據要寫入文件前,必須先使用函數str()將其轉換成字符串格式。

  添加多行時,須要寫入換行符,不然後續寫入的數據,會在前一次寫入數據的末尾。

  追加內容到文件時,須要使用追加模式('a'),

相關文章
相關標籤/搜索