2022-04-04 文件操作

讀出和一些寫

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
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 文件操作Java流簡介文件File的使用FileOutputStream和FileInputStream的使用Fi...
    小石頭呢閱讀 427評論 0 2
  • 學(xué)習(xí)目標(biāo):掌握 python 操作文件 python 提供內(nèi)置函數(shù) open()實現(xiàn)對文件的操作。 python ...
    LinminWang閱讀 480評論 0 0
  • 一.介紹 Java中對文件的操作是以流的方式進行的。流是Java內(nèi)存中的一組有序數(shù)據(jù)序列。Java將數(shù)據(jù)從源(文件...
    走著別浪閱讀 374評論 0 3
  • 應(yīng)用程序如何打開文件 文件是操作系統(tǒng)提供給應(yīng)用程序操作硬盤的一個虛擬單位用于將數(shù)據(jù)永久保存應(yīng)用程序》》操作系統(tǒng)》》...
    范py閱讀 466評論 0 1
  • 關(guān)于數(shù)據(jù)的存儲結(jié)構(gòu),以下選項描述正確的是( D )A: 數(shù)據(jù)所占的存儲空間量B: 存儲在外存中的數(shù)據(jù)C: 數(shù)據(jù)在計...
    IIronMan閱讀 136,763評論 7 60

友情鏈接更多精彩內(nèi)容