欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

如何讀寫文本文件?

實際案例

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

解決方案

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

代碼演示

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

python讀取文件(三種方式)

首先,獲取文件對象

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())

測試文本:

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

運行結(jié)果:

總結(jié)

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

相關(guān)文章

最新評論