真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python函數(shù)處理文件 Python文件操作函數(shù)

python中json處理

python中json文件處理涉及的四個函數(shù)json.loads()、json.dumps()、json.load()、json.dump()。

創(chuàng)新互聯(lián)建站是網(wǎng)站建設(shè)技術(shù)企業(yè),為成都企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計,網(wǎng)站設(shè)計,網(wǎng)站制作,網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制適合企業(yè)的網(wǎng)站。10多年品質(zhì),值得信賴!

1)json.dumps()

將一個Python數(shù)據(jù)類型dict進(jìn)行json格式的編碼(字典-字符串)

eg:

age_dict = {'age1':'12', 'age2':'15'}

json_info = json.dumps(age_dict)

print("json_info = {}".format(json_info))

print("json_info type = {}".format(type(json_info)))

2)json.loads()

將json格式數(shù)據(jù)轉(zhuǎn)換為dict(字符串-字典)

json_age ='{"age1": "12", "age2": "15"}'

dict_age = json.loads(json_info)

print("json_age = {}".format(json_age))

print("dict_age type = {}".format(str(type(dict_age))))

3)json.load()

讀取文件,將里json格式字符串轉(zhuǎn)化為dict

with open(test.json, 'r') as file:

contents = json.load(file)

print(contents)

4)json.dump()

將dict類型轉(zhuǎn)換為json格式字符串,存入文件

number = [1, 2, 3, 5]

file = 'number.json'

with open(file?, 'w') as file:

json.dump(number, file)

說說如何利用 Python 處理 CSV 文件

CSV 表示 “Comma-Separated Values (逗號分隔的值) ” , CSV 文件是簡化的電子表格,實(shí)際為純文本文件。

一個 CSV 文件,格式是這樣的:

因?yàn)?CSV 文件中的每個單元格都是以逗號分割,所以也許有人會對每行文本調(diào)用 split() 方法,來解析 CSV 文件。但 CSV 文件也有自己的轉(zhuǎn)義字符,通過轉(zhuǎn)義字符,允許逗號和其他字符作為值的一部分,但單純使用 split() 方法不能處理這些轉(zhuǎn)義字符。因?yàn)檫@些潛在的缺陷,所以建議總是使用 csv 模塊來讀寫 CSV 文件。

csv 模塊是 Python 自帶的,所以可以直接導(dǎo)入。

要使用 csv 模塊從 CSV 文件中讀取數(shù)據(jù),我們需要創(chuàng)建一個 Reader 對象。 通過 Reader 對象,我們可以迭代遍歷 CSV 文件中的每一行內(nèi)容。

運(yùn)行結(jié)果:

要用 csv 模塊讀取 CSV 文件,首先先使用 open() 函數(shù)打開它 ,就像打開任何其他文本文件一樣。然后將它傳遞給 csv .reader() 函數(shù)。 這個函數(shù)將返回一個 Reader 對象。注意,csv .reader() 函數(shù)不接受文件名作為入?yún)ⅰ?/p>

要訪問 Reader 對象中的值,最直接的方法,就是利用 list() 將它轉(zhuǎn)換成一個普通 Python 列表。它實(shí)際為一個包含列表的列表,用于表示二維數(shù)據(jù)。

我們還可以使用表達(dá)式 data [ row ][ col ] 來訪問 CSV 中特定行和列的值。其中, row 是 data 中一個列表的下標(biāo), col 是該列表中,我們想訪問的項(xiàng)的下標(biāo):

運(yùn)行結(jié)果:

運(yùn)行結(jié)果:

Writer 對象可以讓我們把數(shù)據(jù)寫入 CSV 文件。

運(yùn)行結(jié)果:

在 Windows 上,需要為 open() 函數(shù)的 newline 關(guān)鍵字參數(shù)傳入一個空字符串。如果沒有設(shè)置 newline 參數(shù), output.csv 中的行距將變?yōu)閮杀?,如下圖所示。

如果寫入的內(nèi)容包含逗號,那么 csv 模塊會自動加上雙引號,對其進(jìn)行轉(zhuǎn)義,如下例所示。

運(yùn)行結(jié)果:

我們也可以利用 delimiter ,來制作 TSV 文件,TSV 是Tab-separated values的縮寫,即以制表符作為分隔符的文件;利用 lineterminator 參數(shù)來設(shè)定行距。

運(yùn)行結(jié)果:

這里利用 lineterminator='\n\n\n' 將行與行之間的字符變?yōu)槿齻€換行符,效果就是實(shí)現(xiàn)了 3 倍行距。

python調(diào)用什么函數(shù)不能實(shí)現(xiàn)對文件內(nèi)容的讀取

python調(diào)用read,readline,readlines這三個函數(shù)不能實(shí)現(xiàn)對文件內(nèi)容的讀取。根據(jù)調(diào)查相關(guān)公開材料,Python由荷蘭數(shù)學(xué)和計算機(jī)科學(xué)研究學(xué)會的吉多·范羅蘇姆于1990年代初設(shè)計,作為一門叫做ABC語言的替代品。Python提供了高效的高級數(shù)據(jù)結(jié)構(gòu),還能簡單有效地面向?qū)ο缶幊?。Python語法和動態(tài)類型,以及解釋型語言的本質(zhì),成為多數(shù)平臺上寫腳本和快速開發(fā)應(yīng)用的編程語言,隨著版本的不斷更新和語言新功能的添加,逐漸被用于獨(dú)立的、大型項(xiàng)目的開發(fā)。

Python中的文件讀寫-理論知識

Python處理兩種不同類型的文件:二進(jìn)制文件和文本文件。了解兩者之間的差異很重要,因?yàn)樗鼈兊奶幚矸绞讲煌?/p>

二進(jìn)制文件

在正常計算機(jī)使用期間使用的大多數(shù)文件實(shí)際上是二進(jìn)制文件,而不是文本。比如:Microsoft Word .doc文件實(shí)際上是一個二進(jìn)制文件,即使它只有文本。

二進(jìn)制文件的其他示例包括:

圖像文件,包括.jpg,.png,.bmp,.gif,等。

數(shù)據(jù)庫文件包括.mdb,.frm和.sqlite

文件,包括.doc,.xls,.pdf或者其他文件。

那是因?yàn)檫@些文件都有特殊處理的要求,需要特定類型的軟件來打開它。例如,您需要Excel來打開.xls文件,并使用數(shù)據(jù)庫程序來打開.sqlite文件。

文本文件

一方面,沒有特定的編碼,可以通過沒有任何特殊處理的標(biāo)準(zhǔn)文本編輯器打開。但是,每個文本文件都必須遵守一組規(guī)則:

文本文件必須是可讀的。他們可以(并且經(jīng)常會)包含許多特殊編碼,尤其是在HTML或其他標(biāo)記語言中,但您仍然可以說出它的含義

文本文件中的數(shù)據(jù)按行組織。在大多數(shù)情況下,每一行都是一個獨(dú)特的元素,無論是指令行還是命令。

此外,文本文件在每行的末尾都有一個看不見的字符,這使文本編輯器知道應(yīng)該有一個新行。通過編程與這些文件交互時,您可以利用該字符。在Python中,它用“ n” 表示。

在哪里可以找到Python的文件I / O工具

在Python中工作時,您不必?fù)?dān)心導(dǎo)入任何特定的外部庫來處理文件。Python附帶有“文件庫”,文件I / O工具和實(shí)用程序是核心語言的內(nèi)置部分。

但是在其他語言(如C ++)中,要處理文件,您必須通過包含正確的頭文件來啟用文件I / O工具#include fstream。如果您使用Java編寫代碼,則需要使用該import java.io.*語句。

使用Python,就沒有必要這樣做,這是因?yàn)镻ython有一組內(nèi)置函數(shù),可以處理讀取和寫入文件所需的所有內(nèi)容。

python對文本文件的讀有哪些方法,寫有哪些方法?

1 文件讀取全文本操作

在一定場景下我們需要把文本全部內(nèi)容讀取出來,進(jìn)行處理。python提供三種函數(shù)讀取文件,分別是read readline readlines,

read():讀取文件的全部內(nèi)容,加上參數(shù)可以指定讀取的字符。

readline():讀取文件的一行。

readlines():讀取文件的所有行到內(nèi)存中。

不同場景下我們可以選擇不同函數(shù)對文件進(jìn)行讀取。

1.1 方法一

file_name = input("請輸入你要打開的文件的完整路徑及名稱")

file= open(file_name, "r")

txt=file.read()

# 全文本的處理

file.close()

使用read函數(shù)將文件中的內(nèi)容全部讀取,放在字符串變量txt中。這樣操作適合于文本較小,處理簡單的情況,當(dāng)文件較大時,這種方式處理時不合適的。一次性讀取較大的文件到內(nèi)存中,會耗費(fèi)較多的時間和資源。這時候分批處理效果更好。

1.2 方法二

file_name = input("請輸入你要打開的文件的完整路徑及名稱")

file= open(file_name, "r")

txt= file.read(4)

# 文本的處理while txt != ""txt= file.read(4)

# 批量文本處理

file.close()

這種方法適合于分批處理文本信息,每次批量讀入,批量處理,不會對內(nèi)存造成較大的壓力。

1.3 方法三

file_name = input("請輸入你要打開的文件的完整路徑及名稱")

file= open(file_name, "r")for line infile.readlines():

# 處理每一行數(shù)據(jù)

file.close()

這種處理方式適合處理以行為分割特點(diǎn)的文本,并且文本較小,因?yàn)檫@種處理方式需要一次性把文件所有內(nèi)容讀取到內(nèi)存中。

1.4 方法四

file_name = input("請輸入你要打開的文件的完整路徑及名稱")

file= open(file_name, "r") # 這里的file時文件句柄for line infile:

# 處理每一行數(shù)據(jù)

file.close()

這種方式和方法三中的區(qū)別是分行讀入,逐行處理,不會一次性把文件所有內(nèi)容都讀入到內(nèi)存中,對一些大文件的處理是很有效的。

2 文件寫入文本操作

文件寫入有兩種寫入函數(shù)和一種輔助支持。

write():向文件中寫入一個字符或者字節(jié)流

writelines():將一個元素全為字符串的列表寫入到文件中 需要注意的是,writelines寫入列表元素的時候會把列表元素的內(nèi)容拼接到一起寫入,不會有換行和空格 。

seek(): 輔助寫入函數(shù)offset偏移量參數(shù)代表含義如下

0 - 文件開頭

1 - 當(dāng)前位置

2 - 文件結(jié)尾

2.1 方法一

file_name = input("output.txt", "w+")

text= "hello world!"file_name.write(text)

file.close()

2.2 方法二

file_name = input("output.txt", "w+")

list= ["中午","早上","晚上"]

file_name.writelines(list)for line infile:

# 讀取寫入的數(shù)據(jù),這時候發(fā)現(xiàn)是沒有任何內(nèi)容的

file.close()

我們增加一行代碼就可以讀取到寫入的文件內(nèi)容,利用seek()函數(shù)調(diào)整寫操作指針的位置,可以實(shí)現(xiàn)寫操作之后的正常讀取。

file_name = input("output.txt", "w+")

list= ["中午","早上","晚上"]

file_name.readlines(list)

file_name.seek(0) # 調(diào)整寫的指針到文件的開始位置for line infile:

# 讀取寫入的數(shù)據(jù),這時候會讀出一行寫入的數(shù)據(jù)。

file.close()


網(wǎng)站欄目:python函數(shù)處理文件 Python文件操作函數(shù)
分享網(wǎng)址:http://weahome.cn/article/dodchie.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部