讀出和一些寫
with open("testtext1.txt", "r",encoding='utf-8') as f:
c=f.readlines()
print(c)
for line in c:
line = line.strip('\n') #去掉列表中每一個元素的換行符
print(c)
結(jié)果:
['哈啊哈\n', '而已\n', '134sd\n', 'sw48哈']
['哈啊哈\n', '而已\n', '134sd\n', 'sw48哈']
把c里面的元素取出來,一次次的改掉,好像并不影響這個c,可能因為用的是line.strip
with open("testtext1.txt", "r",encoding='utf-8') as f:
d=f.readline()
print(d)
結(jié)果:
哈啊哈
f=open("testtext1.txt", "r",encoding='utf-8')
c=f.readlines()
print(c)
l=f.readline()
print(l)
f.close()
g=open("testtext1.txt", "rb")
d=g.readline()
print(d)
e=g.readlines()
print(e)
結(jié)果:
['哈啊哈\n', '而已\n', '134sd\n', 'sw48哈']
b'\xe5\x93\x88\xe5\x95\x8a\xe5\x93\x88\r\n'
[b'\xe8\x80\x8c\xe5\xb7\xb2\r\n', b'134sd\r\n', b'sw48\xe5\x93\x88']
但是
f=open("testtext1.txt", "r",encoding='utf-8')
l=f.readline()
print(l)
f.close()
g=open("testtext1.txt", "rb")
d=g.readline()
print(d)
結(jié)果就變了
哈啊哈
b'\xe5\x93\x88\xe5\x95\x8a\xe5\x93\x88\r\n'
print本身有一個換行,文本每行自帶一個換行\(zhòng)n。

1

2
例如r+w

3

4
覆蓋寫就能用來文件復(fù)制
學(xué)生成績統(tǒng)計

5
f=open("score.txt","r",encoding='utf-8')
s=f.readlines()
print(s)
運行結(jié)果:
['學(xué)號 姓名 專業(yè) 筆試 平時 實驗\n',
'SA21234015 李子豪 凝聚態(tài)物理 90 87 90\n',
'SA21234010 孟鑫勇 垃圾治理 80 90 90']
我在簡書復(fù)制這段結(jié)果后,加了回車鍵,否則應(yīng)該是一行輸出。
f=open("score.txt","r",encoding='utf-8')
for line in f.readlines():
print(line)
運行結(jié)果:
學(xué)號 姓名 專業(yè) 筆試 平時 實驗
SA21234015 李子豪 凝聚態(tài)物理 90 87 90
SA21234010 孟鑫勇 垃圾治理 80 90 90
兩個問題:一是print和文本的換行,造成了空行;二是表頭之間的差距大???

6
f=open("score.txt","r",encoding='utf-8')
for line in f.readlines():
print(line)
運行結(jié)果:
學(xué)號 姓名 專業(yè) 筆試 平時 實驗
SA21234015 李子豪 凝聚態(tài)物理 90 87 90
SA21234010 孟鑫勇 垃圾治理 80 90 90
f=open("score.txt","r",encoding='utf-8')
head=f.readline() #讀表頭行
newhead=head[:16]+head[16:-1]+' 總評成績'
print(newhead)
for line in f.readlines():
l=line.split()
s=round(int(l[3])*0.5+int(l[4])*0.25+int(l[5])*0.25,2) #求總評分
l[4]=l[4]
l[5]=l[5]
print(" ".join(l)+' '+str(s)) #加空格對齊
f.close()
運行結(jié)果:
學(xué)號 姓名 專業(yè) 筆試 平時 實驗 總評成績
SA21234015 李子豪 凝聚態(tài)物理 90 87 90 89.25
SA21234010 孟鑫勇 垃圾治理 80 90 90 85.0
f=open("score.txt","r",encoding='utf-8')
head=f.readline() #讀表頭行
newhead=head[:16]+head[16:-1]+' 總評成績'
print(newhead)
sl=""
for line in f.readlines():
l=line.split()
s=round(int(l[3])*0.5+int(l[4])*0.25+int(l[5])*0.25,2) #求總評分
l[4]=l[4]
l[5]=l[5]
print(" ".join(l)+' '+str(s)) #加空格對齊
sl+=" ".join(l)+' '+str(s)+"\n"
f.close()
sl=sl[:-1]
sl=newhead=head[:16]+head[16:-1]+' 總評成績\n'+sl
g=open("score1.txt","w",encoding='utf-8')
g.write(sl)
g.close()

7