欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

python文件處理

方法一:

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、微信小程序定制開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了平陽(yáng)免費(fèi)建站歡迎大家使用!

f = open(file='D:/工作日常/test.txt',mode='r',encoding='utf-8')
data = f.read()
f.close

方法二:

with open(file='D:/工作日常/test.txt',mode='r',encoding='utf-8') as f
data = f.read()

file='D:/工作日常/test.txt'  表示文件路徑
mode='r'                           表示只讀(可以修改為其他)
encoding='utf-8'                表示字符編碼
f.read()                              表示讀取所有內(nèi)容,內(nèi)容是已經(jīng)轉(zhuǎn)換完畢的字符串。
f.close()                             表示關(guān)閉文件

不清楚要處理的文件是什么編碼處理辦法:

pip install chardet   安裝chardet   ##檢測(cè)編碼模塊

import chardet 
f = open('log',mode='rb') 
data = f.read() 
f.close() 
result = chardet.detect(open('log',mode='rb').read()) 
print(result) 
輸出: 
{'encoding': 'GB2312', 'confidence': 0.99, 'language': 'Chinese'} 
print(chardet.detect(b'Hello, world!')) 
輸出: {'encoding': 'ascii', 'confidence': 1.0, 'language': ''}

循環(huán)文件:

f = open("test.txt",'r',encoding="utf-8") 
    for line in f:
    
print(line) 
f.close()

寫(xiě)文件:

f = open(file='D:test.txt',mode='w',encoding='utf-8')
f.write('test,test')
f.close()


file='D:/test.txt'     表示文件路徑
mode='w'              表示只寫(xiě)
encoding='utf-8'     將要寫(xiě)入的unicode字符串編碼成utf-8格式
f.write(...)
表示寫(xiě)入內(nèi)容,寫(xiě)入的內(nèi)容是unicode字符串類型,內(nèi)部會(huì)根據(jù)encoding轉(zhuǎn)換為制定編碼的 01101010101,
即:字節(jié)類型
f.close()


f = open(file='D:/test.txt',mode='wb')
f.write('test,test'.encode('utf-8'))
f.close()


file='D:/test.txt'      表示文件路徑
mode='wb'            表示只以2進(jìn)制模式寫(xiě)
f.write(...)              表示寫(xiě)入內(nèi)容,寫(xiě)入的內(nèi)容必須字節(jié)類型,即:是某種編碼格式的二進(jìn)制格式
f.close()

注意:

文件操作時(shí),以“w”或者"wb"模式打開(kāi),則只能寫(xiě),并且在打開(kāi)的同時(shí)會(huì)先將內(nèi)容清空。

在寫(xiě)入到硬盤(pán)上時(shí),必須是某種編碼的二進(jìn)制,打開(kāi)時(shí)需要注意:

wb,寫(xiě)入時(shí)需要直接傳入以二進(jìn)制格式,即字節(jié)類型

w和encoding,寫(xiě)入時(shí)需要傳入unicode字符串,內(nèi)部會(huì)根據(jù)encoding指定的編碼將unicode字符串轉(zhuǎn)換為該編碼的二進(jìn)制格式

追加:

把內(nèi)容追加到文件尾部

f = open("test.txt",'a',encoding="gbk")

f.write("\ntest2 北京  167 49 13324523342")
f.close()

注意:

文件操作時(shí),以“a”或者“ab”模式打開(kāi),則只能追加,即:在原來(lái)內(nèi)容的尾部追加內(nèi)容

寫(xiě)入硬盤(pán)上時(shí),必須是某種編碼的二進(jìn)制格式,打開(kāi)時(shí)需要注意:

  • ab,寫(xiě)入是需要直接傳入某種編碼的二進(jìn)制格式,即:字節(jié)類型

  • a和encoding,寫(xiě)入時(shí)需要傳入unicode字符串,內(nèi)部會(huì)根據(jù)encoding指定的編碼將unicode字符串轉(zhuǎn)換為該編碼的二進(jìn)制格式

讀寫(xiě)模式:

f = open("test.txt",'r+',encoding="gbk")
data = f.read() #可以讀內(nèi)容 
print(data)
f.write("\nblack girl  河北  167 50  13542342233") #可以寫(xiě)
f.close()
寫(xiě)入的文件追加到文件最后

寫(xiě)讀模式:

f = open("test.txt",'w+',encoding="gbk")
data = f.read() 
print(data)

f.write("\nnewline 1哈哈")
f.write("\nnewline 2哈哈")
f.write("\nnewline 3哈哈")
f.write("\nnewline 4哈哈")

print("content",f.read())

f.close()
此時(shí)查看文件 內(nèi)容 發(fā)現(xiàn),里面只有4條newline..內(nèi)容,之前的舊內(nèi)容全沒(méi)了,事實(shí)代表,w+會(huì)先把文件清空,再寫(xiě)新內(nèi)容,相比w模式,只是支持了一個(gè)讀功能,且還只能讀已經(jīng)寫(xiě)入的新內(nèi)容。
seek() 方法用于移動(dòng)文件讀取指針到指定位置
fileObject.seek(offset[, whence])

參數(shù)

  • offset -- 開(kāi)始的偏移量,也就是代表需要移動(dòng)偏移的字節(jié)數(shù)

  • whence:可選,默認(rèn)值為 0。給offset參數(shù)一個(gè)定義,表示要從哪個(gè)位置開(kāi)始偏移;0代表從文件開(kāi)頭開(kāi)始算起,1代表從當(dāng)前位置開(kāi)始算起,2代表從文件末尾算起。

seek如果直接寫(xiě)入文件,偏移量有數(shù)據(jù)的話就會(huì)替換掉之前的數(shù)據(jù),這是因?yàn)橛脖P(pán)的存儲(chǔ)原理導(dǎo)致的,當(dāng)文件存儲(chǔ)硬盤(pán)中,硬盤(pán)就會(huì)劃分一塊空間,存儲(chǔ)數(shù)據(jù),當(dāng)你再次讀取文件時(shí),seek到某個(gè)位置,每做出一次修改,就會(huì)把原來(lái)的數(shù)據(jù)覆蓋掉,如果想直接插入,是不可能的,因?yàn)楹筮叺臄?shù)據(jù)在硬盤(pán)上不會(huì)整體向后偏移。

如果想要修改數(shù)據(jù),需要把硬盤(pán)中的數(shù)據(jù)全部讀取到內(nèi)存中,然后在內(nèi)存中修改數(shù)據(jù)(增刪改查),修改過(guò)后,再把內(nèi)容全部寫(xiě)回硬盤(pán),把原來(lái)的數(shù)據(jù)全部覆蓋掉。vim、word各種文本編輯器就是這樣的原理。

占硬盤(pán)方式的文件修改代碼示例

import os

f_name = "test.txt"
f_new_name = "%s.new" % f_name

old_str = "喬亦菲"
new_str = "[喬亦菲 Yifei Qiao]"

f = open(f_name,'r',encoding="utf-8")
f_new = open(f_new_name,'w',encoding="utf-8")

for line in f:

    if old_str in line:
        new_line = line.replace(old_str,new_str)
    else:
        new_line = line

    f_new.write(new_line)

f.close()
f_new.close()

os.rename(f_new_name,f_name) #把新文件名字改成原文件 的名字,就把之前的覆蓋掉了,windows使用os.replace #

練習(xí)題:

練習(xí)題1 —— 全局替換程序:

寫(xiě)一個(gè)腳本,允許用戶按以下方式執(zhí)行時(shí),即可以對(duì)指定文件內(nèi)容進(jìn)行全局替換

`python your_script.py old_str new_str filename`

替換完畢后打印替換了多少處內(nèi)容

import sys, os, re

if len(sys.argv) <= 4:
    print('usage:./practice.py  old_text  new_text  filename')

    old_text, new_text = sys.argv[1], sys.argv[2]
    filename = sys.argv[3]
    with open(file=filename, mode='r', encoding='utf8') as f:
        data = f.read()
    # print(data)
    count = re.findall(old_text, data)
    print('修改%s處內(nèi)容' % len(count))
    data = data.replace(old_text, new_text)
    print(data)
    with open(file='%s_new' % filename, mode='w', encoding='utf8') as f:
        f.write(data)
    os.rename('%s_new' % filename, filename)

模式

描述

t

文本模式 (默認(rèn))。

x

寫(xiě)模式,新建一個(gè)文件,如果該文件已存在則會(huì)報(bào)錯(cuò)。

b

二進(jìn)制模式。

+

打開(kāi)一個(gè)文件進(jìn)行更新(可讀可寫(xiě))。

U

通用換行模式(不推薦)。

r

以只讀方式打開(kāi)文件。文件的指針將會(huì)放在文件的開(kāi)頭。這是默認(rèn)模式。

rb

以二進(jìn)制格式打開(kāi)一個(gè)文件用于只讀。文件指針將會(huì)放在文件的開(kāi)頭。這是默認(rèn)模式。一般用于非文本文件如圖片等。

r+

打開(kāi)一個(gè)文件用于讀寫(xiě)。文件指針將會(huì)放在文件的開(kāi)頭。

rb+

以二進(jìn)制格式打開(kāi)一個(gè)文件用于讀寫(xiě)。文件指針將會(huì)放在文件的開(kāi)頭。一般用于非文本文件如圖片等。

w

打開(kāi)一個(gè)文件只用于寫(xiě)入。如果該文件已存在則打開(kāi)文件,并從開(kāi)頭開(kāi)始編輯,即原有內(nèi)容會(huì)被刪除。如果該文件不存在,創(chuàng)建新文件。

wb

以二進(jìn)制格式打開(kāi)一個(gè)文件只用于寫(xiě)入。如果該文件已存在則打開(kāi)文件,并從開(kāi)頭開(kāi)始編輯,即原有內(nèi)容會(huì)被刪除。如果該文件不存在,創(chuàng)建新文件。一般用于非文本文件如圖片等。

w+

打開(kāi)一個(gè)文件用于讀寫(xiě)。如果該文件已存在則打開(kāi)文件,并從開(kāi)頭開(kāi)始編輯,即原有內(nèi)容會(huì)被刪除。如果該文件不存在,創(chuàng)建新文件。

wb+

以二進(jìn)制格式打開(kāi)一個(gè)文件用于讀寫(xiě)。如果該文件已存在則打開(kāi)文件,并從開(kāi)頭開(kāi)始編輯,即原有內(nèi)容會(huì)被刪除。如果該文件不存在,創(chuàng)建新文件。一般用于非文本文件如圖片等。

a

打開(kāi)一個(gè)文件用于追加。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。也就是說(shuō),新的內(nèi)容將會(huì)被寫(xiě)入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件進(jìn)行寫(xiě)入。

ab

以二進(jìn)制格式打開(kāi)一個(gè)文件用于追加。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。也就是說(shuō),新的內(nèi)容將會(huì)被寫(xiě)入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件進(jìn)行寫(xiě)入。

a+

打開(kāi)一個(gè)文件用于讀寫(xiě)。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。文件打開(kāi)時(shí)會(huì)是追加模式。如果該文件不存在,創(chuàng)建新文件用于讀寫(xiě)。

ab+

以二進(jìn)制格式打開(kāi)一個(gè)文件用于追加。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。如果該文件不存在,創(chuàng)建新文件用于讀寫(xiě)。

網(wǎng)站欄目:python文件處理
本文地址:http://aaarwkj.com/article28/ihpejp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、品牌網(wǎng)站設(shè)計(jì)、軟件開(kāi)發(fā)、響應(yīng)式網(wǎng)站、標(biāo)簽優(yōu)化做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)
少妇肥臀一区二区三区| 粉嫩护士国产在线观看| 国产精品自拍国产精品| 日本高清一区二区网站| 午夜视频在线观看91| 国产精品日韩精品在线| 中文字幕一区二区不卡顿| 亚洲婷婷综合久久一区二区| 麻豆色视频在线观看免费| 色老头视频一区二区三区| 亚洲成人福利免费网站| 亚洲欧美精品专区久久| 亚洲午夜av久久乱码| 美女高潮呻吟免费观看久久久| 日韩视频在线不卡观看| 日韩精品一区二区视频大全| 女子张开腿让男人捅爽| 亚洲一区二区三区久久伊人| 亚洲熟女av一区少妇| 不卡在线视频中文字幕| 四虎最新永久在线网站| 一区二区三区蜜桃av| 日韩视频看看色网站| 人妻人人澡人人添人人爽桃色| 国产91久久精品一区二区| 日韩视频精品推荐一区二区| 日本中文字幕黄色人妻| 亚洲激情粉嫩中文字幕| 美女福利视频一区二区| 91嫩草中文字幕在线| 日韩国产精品亚洲欧美在线| 日韩精品人妻一区二区免| 久久人体午夜激情视频| 欧美日韩亚洲国产精品视频| 欧美在线观看黄片视频| 中文字幕二区三区av| 人妻少妇中文字幕久久| 国产三级在线视频不卡| 男女在线视频网站免费| 日本人妻三级精品久久| 国产精品亚洲一区二区在|