最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python2和Python3讀取文本文件的區(qū)別及說(shuō)明

 更新時(shí)間:2024年02月10日 10:21:55   作者:AllardZhao  
這篇文章主要介紹了Python2和Python3讀取文本文件的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Python2和3讀取文本文件的區(qū)別

如何讀寫文本文件?

實(shí)際案例

  • 某文本文件編碼格式已知(如UTF-8,GBK,BIG5)
  • 在python 2.x和python 3.x中分別如何讀取該文件?

解決方案

  • python 2.x:寫入文件前對(duì)unicode編碼,讀入文件后對(duì)二進(jìn)制字符串解碼。
  • python 3.x:open函數(shù)指定't'的文本模式,encoding指定編碼格式。

代碼演示

# Python2中的文本文件讀寫
'''
文本也就是unicode字符串,在寫入文件前要對(duì)unicode字符串指定某種格式的編碼,
將它變成str這種形式,python2中str為連續(xù)的字節(jié),只有這些字節(jié)才能存儲(chǔ)到物理設(shè)備上去。
讀取文件的時(shí)候就是反過(guò)來(lái),讀入的也是一些字節(jié),將其進(jìn)行解碼還原成unicode也就是文本。
'''
# 寫入文本
f1 = open('py2.txt', 'w')
s = u'你好'
f1.write(s.encode('gbk'))
f1.close()
# 讀取文本
f1 = open('py2.txt', 'r')
t = f1.read()
print(t.decode('gbk'))
 
--------------------------------------------------------------
 
# Python3中的文本文件讀寫
'''
python3中的字符串定義上更加明確了,原來(lái)的str變成了bytes(一系列字節(jié));
原來(lái)的unicode變成了真正意義上的字符串。
python2中定義bytes字符串也就是字節(jié)字符串的時(shí)候,只需要這樣寫'sdfsger',
但是在python3中要加一個(gè)小b,如:b'sdfsger'。
unicode在python2中前面要加一個(gè)小u,這才表示unicode字符產(chǎn),如:u'你好';
但是在python3中字符串的含義它直接就是unicode字符串,所以不用寫小u,如:'你好'。
這就是Python2和Python3之間字符串的差別
'''
# 寫入文本,t為文本模式不寫也是默認(rèn)為t打開,格式為utf8
f2 = open('py3.txt', 'wt', encoding='utf8')
f2.write('你好,我愛(ài)編程。')
f2.close()
# 讀取文本
f2 = open('py3.txt', 'rt', encoding='utf8')
s = f2.read()
print(s)
'''
Python3中指定encoding會(huì)自動(dòng)幫我們進(jìn)行編碼和解碼,
而python2中就需要你手動(dòng)進(jìn)行編碼和解碼。
'''

python讀取文件(三種方式)

首先,獲取文件對(duì)象

file = "F://content.txt"
f = open(file, 'r', encoding='utf-8')
list = f.readlines()

方法一:直接打印

# 方法1:直接打印
print(list)

方法二:while循環(huán)

print('----------方法2:while循環(huán)1----------------')
# 方法2:while循環(huán)
f = open(file, 'r', encoding='utf-8')
while True:
    line = f.readline()
    if len(line)==0:
        break
    print(line.strip('\n'))
print('----------方法2:while循環(huán)2----------------')
while length>0:
    print(list[i][:-1])
    i+=1
    length-=1

方法三:for循環(huán)

# 方法3:for循環(huán)
for i in list:
    print(i.strip())

所有代碼:

file = "F://content.txt"
f = open(file, 'r', encoding='utf-8')
list = f.readlines()
print('-------------方法1:直接打印----------------')
# 方法1:直接打印
print(list)
length = len(list)
i=0
print('----------方法2:while循環(huán)1----------------')
# 方法2:while循環(huán)
file = "F://content.txt"
while True:
    line = f.readline()
    if len(line)==0:
        break
    print(line.strip('\n'))
print('----------方法2:while循環(huán)2----------------')
while length>0:
    print(list[i][:-1])
    i+=1
    length-=1
print('---------方法3:for循環(huán)-------------------')
# 方法3:for循環(huán)
for i in list:
    print(i.strip())

測(cè)試文本:

bbb aa  dd
cc  aa  cc
aa  dd  ee
dfs dfs dfs

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

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python中rb含義理解

    python中rb含義理解

    在本篇文章里小編給大家整理的是關(guān)于python中rb含義及用法內(nèi)容,需要的朋友們可以學(xué)習(xí)下。
    2020-06-06
  • Python對(duì)象類型及其運(yùn)算方法(詳解)

    Python對(duì)象類型及其運(yùn)算方法(詳解)

    下面小編就為大家?guī)?lái)一篇Python對(duì)象類型及其運(yùn)算方法(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • python實(shí)現(xiàn)去掉字符串中的\xa0、\t、\n

    python實(shí)現(xiàn)去掉字符串中的\xa0、\t、\n

    這篇文章主要介紹了python實(shí)現(xiàn)去掉字符串中的\xa0、\t、\n方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • OpenCV霍夫圓變換cv2.HoughCircles()

    OpenCV霍夫圓變換cv2.HoughCircles()

    這篇博客將學(xué)習(xí)如何使用霍夫圓變換在圖像中找到圓圈,OpenCV使用cv2.HoughCircles()實(shí)現(xiàn)霍夫圓變換,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 16個(gè)python常用魔法函數(shù)小結(jié)

    16個(gè)python常用魔法函數(shù)小結(jié)

    本文主要介紹了16個(gè)python常用魔法函數(shù)小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Django實(shí)現(xiàn)發(fā)送郵件功能

    Django實(shí)現(xiàn)發(fā)送郵件功能

    這篇文章主要介紹了Django實(shí)現(xiàn)發(fā)送郵件功能,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-07-07
  • python 多線程對(duì)post請(qǐng)求服務(wù)器測(cè)試并發(fā)的方法

    python 多線程對(duì)post請(qǐng)求服務(wù)器測(cè)試并發(fā)的方法

    今天小編就為大家分享一篇python 多線程對(duì)post請(qǐng)求服務(wù)器測(cè)試并發(fā)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • Python中的Decimal使用及說(shuō)明

    Python中的Decimal使用及說(shuō)明

    這篇文章主要介紹了Python中的Decimal使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Flask框架Flask-Login用法分析

    Flask框架Flask-Login用法分析

    這篇文章主要介紹了Flask框架Flask-Login用法,結(jié)合實(shí)例形式分析了Flask-Login插件進(jìn)行登錄驗(yàn)證的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-07-07
  • Flask表單與表單驗(yàn)證實(shí)現(xiàn)流程介紹

    Flask表單與表單驗(yàn)證實(shí)現(xiàn)流程介紹

    這篇文章主要介紹了python中Flask?Web?表單的使用方法介紹,表單的操作是Web程序開發(fā)中最核心的模塊之一,絕大多數(shù)的動(dòng)態(tài)交互功能都是通過(guò)表單的形式實(shí)現(xiàn)的。更多介紹需要的小伙伴可以參考下面文章內(nèi)容
    2022-09-09

最新評(píng)論

晋中市| 临武县| 温泉县| 藁城市| 安顺市| 郓城县| 文水县| 迁西县| 哈巴河县| 六安市| 珠海市| 监利县| 塔河县| 日土县| 白山市| 色达县| 多伦县| 安多县| 秦皇岛市| 曲沃县| 宜黄县| 周口市| 甘德县| 历史| 荣成市| 瓦房店市| 岳池县| 万源市| 措美县| 松桃| 板桥市| 宣化县| 科技| 石楼县| 庆元县| 嵊泗县| 开鲁县| 岫岩| 大足县| 上犹县| 宣化县|