久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > Python處理文件的幾個(gè)常用小知識(shí)

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

來(lái)源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-11-07 03:54:20 1699300460

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

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

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

讀取整個(gè)文件

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

pi.txt:

3.1415926535

8979323846

2643383279

打開(kāi)并讀取該文件:

withopen('pi.txt')asfile:

contents=file.read()

print(contents)

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

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

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

print(contents.rstrip())

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

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

withopen('files/filename.txt')asfile_object:

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

withopen('files\filename.txt')asfile_object:

逐行讀取

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

filename='pi.txt'

withopen(filename)asfile:

forlineinfile:

print(line)

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

filename='pi.txt'

withopen(filename)asfile:

forlineinfile:

print(line.rstrip())

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

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

filename='pi.txt'

withopen(filename)asfile:

lines=file.readlines()

forlineinlines:

print(line.rstrip())

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

使用文件內(nèi)容

filename='pi.txt'

withopen(filename)asfile:

lines=file.readlines()

ss=''

forlineinlines:

ss+=line.strip()

print(ss)

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

2、寫(xiě)入文件

寫(xiě)入空文件

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

withopen(filename,'w')asfile:

file.write("abcdefg")

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

寫(xiě)入多行

withopen(filename,'w')asfile:

file.write("abcdefg\n")

file.write("hijklmn\n")

存儲(chǔ)數(shù)據(jù)python中常使用json來(lái)存儲(chǔ)數(shù)據(jù)。json可以將簡(jiǎn)單的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ù)的文件對(duì)象。json.load()用于加載存儲(chǔ)在json文件中的信息。

importjson

num=[1,2,3,4,5]

filename='a.json'

withopen(filename,'w')asf:

json.dump(num,f)

withopen(filename)asf:

num=json.load(f)

print(num)

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

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

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

importjson

#如果以前儲(chǔ)存了用戶名就加載它,否則,就提示用戶輸入名字并存儲(chǔ)

filename='name.json'

try:

withopen(filename)asf:

username=json.load(f)

exceptFileNotFoundError:

name=input("你叫什么名字?")

withopen(filename,'w')asf:

json.dump(name,f)

print("我們會(huì)記住你的,"+name+"!")

else:

print("歡迎回來(lái),"+name+"!")

以上內(nèi)容為大家介紹了Python處理文件的幾個(gè)常用小知識(shí),希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://m.2667701.com/

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
Python字符串連接

字符串是Python中常用的數(shù)據(jù)類型,在開(kāi)發(fā)過(guò)程中可以對(duì)字符創(chuàng)進(jìn)行截取并與其他字符創(chuàng)進(jìn)行連接。下面小編整理了5種方法完成Python字符創(chuàng)的連接!加...詳情>>

2023-11-07 06:47:08
數(shù)據(jù)科學(xué)中必須了解的Python核心庫(kù)

python有三個(gè)核心數(shù)據(jù)科學(xué)庫(kù),在此基礎(chǔ)上還創(chuàng)建了許多其他的庫(kù)。這三個(gè)核心數(shù)據(jù)科學(xué)庫(kù)分別為:NumpyScipyMatplotlib簡(jiǎn)單起見(jiàn),可以把Numpy視為...詳情>>

2023-11-07 06:39:56
如何讓Python代碼更易維護(hù)

檢查你的代碼的質(zhì)量,通過(guò)這些外部庫(kù)使其更易維護(hù)??勺x性很重要?!狿ython之禪TheZenofPython,TimPeters隨著軟件項(xiàng)目進(jìn)入“維護(hù)模式”,對(duì)可...詳情>>

2023-11-07 06:14:44
Pylint讓Python代碼保持一致

當(dāng)你想要爭(zhēng)論代碼復(fù)雜性時(shí),Pylint是你的朋友。Pylint是更高層級(jí)的Python樣式強(qiáng)制程序。而flake8和black檢查的是“本地”樣式:換行位置、注釋...詳情>>

2023-11-07 06:00:20
如何理解Python一切都是變量的說(shuō)法?

Python的好處之一是與其他語(yǔ)法繁重的語(yǔ)言相比,Python具有相對(duì)易用的特點(diǎn)。但是,隨著深入的學(xué)習(xí)就會(huì)發(fā)現(xiàn)Python有許多隱藏的特性貫穿其中,因此...詳情>>

2023-11-07 05:17:08