日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Python處理文件的幾個(gè)常用小知識

 Python處理文件的幾個(gè)常用小知識

Python 這門語言有個(gè)很大的用途就是使用它來進(jìn)行文件處理,學(xué)會(huì)處理文件和保存數(shù)據(jù)可以讓你的程序使用起來更加容易和方便,因此小編為大家準(zhǔn)備了幾個(gè)處理文件常用的幾個(gè)小知識,快來一起學(xué)習(xí)吧!

1 、讀取文件數(shù)據(jù)

文本文件可存儲(chǔ)的數(shù)據(jù)量非常豐富,像天氣數(shù)據(jù)、交通數(shù)據(jù)、文學(xué)作品等。每當(dāng)我們需要分析或修改儲(chǔ)存在文件中的信息時(shí),讀取文件就顯得尤為重要。想讀取一個(gè)文件的信息,我們可以一次性讀取全部內(nèi)容,也可以每次一行逐步讀取。

讀取整個(gè)文件

我們先來創(chuàng)建一個(gè)包含幾行文本的文件,在編輯器中輸入以下數(shù)據(jù)行,保存為 txt 格式:

 
 
 
  1. pi.txt: 
  2. 3.1415926535 
  3.   8979323846 
  4.   2643383279 

打開并讀取該文件:

 
 
 
  1. with open('pi.txt') as file: 
  2.     contents = file.read() 
  3.     print(contents) 

在這行程序中,出現(xiàn)了兩個(gè)函數(shù)open( )和read( )。

函數(shù)open( )用于打開一個(gè)文件,它接受的參數(shù)是要打開文件的名稱,Python 會(huì)在當(dāng)前執(zhí)行的文件目錄中查找指定的文件,然后返回一個(gè)表示文件的對象。

方法read( ) 用于讀取這個(gè)文件的全部內(nèi)容,并將其作為一個(gè)長長的字符串儲(chǔ)存在變量contents中。但這段程序的運(yùn)行結(jié)果大家可以嘗試一下,它會(huì)把這個(gè)文本的內(nèi)容全部輸出并在最后多出一行空行,這是因?yàn)閞ead( )到達(dá)文件末尾時(shí)會(huì)返回一個(gè)空字符串,顯示在結(jié)果就是一個(gè)空行。如果想要?jiǎng)h除末尾的空行,可以在print中使用rstrip( ):

 
 
 
  1. print(contents.rstrip()) 

關(guān)于文件路徑,我們需要注意的是,Linux 系統(tǒng)和 windows 有一點(diǎn)不同:

在Linux和OS X中(使用斜杠/):

 
 
 
  1. with open('files/filename.txt') as file_object: 

在Windows中(使用反斜杠\):

 
 
 
  1. with open('files\filename.txt') as file_object: 

逐行讀取

如果想每次一行的讀取文件,可對文件對象使用for循環(huán):

 
 
 
  1. filename='pi.txt' 
  2.  
  3. with open(filename) as file: 
  4.    for line in file: 
  5.         print(line)    

同樣,為了刪除每一行多余出來的空行,我們可以使用rstrip( ):

 
 
 
  1. filename='pi.txt' 
  2.  
  3. with open(filename) as file: 
  4.    for line in file: 
  5.         print(line.rstrip())    

創(chuàng)建一個(gè)包含文件各行內(nèi)容的列表

當(dāng)使用with時(shí),open( )返回的文件對象只能在with代碼塊內(nèi)使用。如果想要在代碼塊外訪問文件內(nèi)容時(shí),我們可以在with代碼塊內(nèi)將文件的各行儲(chǔ)存在一個(gè)列表中,并在with代碼塊外使用該列表訪問。

 
 
 
  1. filename='pi.txt' 
  2.  
  3. with open(filename) as file: 
  4.   lines = file.readlines() 
  5.  
  6. for line in lines: 
  7.     print(line.rstrip()) 

方法readlines( )表示從文件中讀取每一行,并將其儲(chǔ)存在一個(gè)列表中。

使用文件內(nèi)容

 
 
 
  1. filename='pi.txt' 
  2.  
  3. with open(filename) as file: 
  4.    lines = file.readlines() 
  5.  
  6. ss='' 
  7. for line in lines: 
  8.     ss += line.strip() 
  9. print(ss) 

該程序運(yùn)行結(jié)果為:3.141592653589793238462643383279

 2 、寫入文件

寫入空文件

將文本寫入文件,可以在調(diào)用open( )時(shí)提供另一個(gè)實(shí)參。即打開文件時(shí),可以指定需要的模式:'r'讀取模式,'w'寫入模式,'a'附加模式,'r+'讀取和寫入模式。python 默認(rèn)只讀模式。

 
 
 
  1. with open(filename,'w') as file: 
  2.     file.write("abcdefg") 

注意:python 只能將字符串寫入文本文件,如果想把數(shù)值數(shù)據(jù)儲(chǔ)存到文本文件,必須先使用函數(shù)str( )將其轉(zhuǎn)為字符串格式。

寫入多行

 
 
 
  1. with open(filename,'w') as file: 
  2.     file.write("abcdefg\n") 
  3.     file.write("hijklmn\n") 

存儲(chǔ)數(shù)據(jù)python中常使用json來存儲(chǔ)數(shù)據(jù)。json可以將簡單的python數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)存到文件中,并在程序再次運(yùn)行時(shí)加載該文件中的數(shù)據(jù)。

JSON數(shù)據(jù)格式并非python專用,它是一種常用的數(shù)據(jù)格式,很有用,也易于學(xué)習(xí)。

json.dump( ) 和 json.load( )

這兩個(gè)函數(shù)分別用于儲(chǔ)存數(shù)據(jù)和加載數(shù)據(jù)。json.dump() 接受兩個(gè)實(shí)參:要儲(chǔ)存的數(shù)據(jù)和用于儲(chǔ)存數(shù)據(jù)的文件對象。json.load() 用于加載存儲(chǔ)在json文件中的信息。

 
 
 
  1. import json 
  2. num = [1,2,3,4,5] 
  3. filename = 'a.json' 
  4. with open(filename,'w') as f: 
  5.     json.dump(num,f) 
 
 
 
  1. with open(filename) as f: 
  2.     num = json.load(f) 
  3. print(num) 

這是一種在程序之間共享數(shù)據(jù)的簡單方式。

實(shí)現(xiàn)一個(gè)小功能

下面這個(gè)程序可以實(shí)現(xiàn)我們常常在游戲開頭時(shí)遇到的一個(gè)小功能,一起來試試吧!

 
 
 
  1. import json 
  2. # 如果以前儲(chǔ)存了用戶名就加載它,否則,就提示用戶輸入名字并存儲(chǔ) 
  3. filename = 'name.json' 
  4. try: 
  5.     with open(filename) as f: 
  6.         username=json.load(f) 
  7. except FileNotFoundError: 
  8.     name = input("你叫什么名字?") 
  9.  with open(filename,'w') as f: 
  10.      json.dump(name,f) 
  11.      print("我們會(huì)記住你的,"+name+"!") 
  12. else: 
  13.     print("歡迎回來,"+name+"!") 

網(wǎng)站題目:Python處理文件的幾個(gè)常用小知識
文章路徑:http://www.5511xx.com/article/djgpdgi.html