python对文件的_python对文件的读写
文件 File
什么是文件
文件是用于數(shù)據(jù)存儲和單位
文件通常用來長期存儲數(shù)據(jù)
文件中的數(shù)據(jù)是以字節(jié)為單位進(jìn)行順序存儲的
文件的操作流程:
1. 打開文件
2. 讀/寫文件
3. 關(guān)閉文件
注:
任何的操作系統(tǒng),一個應(yīng)用程序同時打開文件的數(shù)量有最大數(shù)限制
文件的打開函數(shù)
open(file, mode='rt/wt') 用于打開一個文件,返回此文件流對象,如果打開文件失敗,則會觸發(fā)OSError錯誤
對文件的讀/寫:
文件的關(guān)閉方法:
F.close() # 關(guān)閉文件,釋放系統(tǒng)資源
文本文件操作
操作模式:
't'
說明:
1. 默認(rèn)文件中存儲的都為字符數(shù)據(jù),在讀寫過程中會自動進(jìn)行編解碼操作,
2. 文本文件以行為單位進(jìn)行分隔,在python內(nèi)部統(tǒng)一用'\n'作用為換行符進(jìn)行分隔
3. 對文本文件的讀寫操作需要用字符串(str) 進(jìn)行數(shù)據(jù)操作
各操作系統(tǒng)的換行符
Linux換行符: '\n'
Windows 換行符: '\r\n'
新的Mac OS 換行符: '\n'
舊的Macintosh換行符: '\r'(已不用了)
這是對文件的讀示例:
zengsf.txt內(nèi)容:
張三20 100李四21 96小王20 98
~
defread_info_txt():
dic=[]try:
f= open("zengsf.txt")
lines= f.readlines() #一次性讀取文件的所有數(shù)據(jù),然后用for循環(huán)來進(jìn)行遍歷
for x inlines:
l= x.split(" ")
dic.append({"name":l[0],"age":int(l[1]),"score":int(l[2])})print("%s今年%d歲,成績是:%d"%(l[0],int(l[1]),int(l[2])))
f.close()returndicexcept:print("文件打開失敗")defprint_info(L):for d inL:print(d["name"],"今年",d["age"],"歲,成績是:",d["score"])
L=read_info_txt()print(L)
print_info(L)
打印結(jié)果:
tarena@tedu:~/zengsf$ python3 exercise822.py
張三今年20歲,成績是:100李四今年21歲,成績是:96小王今年20歲,成績是:98[{'name': '張三', 'score': 100, 'age': 20}, {'name': '李四', 'score': 96, 'age': 21}, {'name': '小王', 'score': 98, 'age': 20}]
張三 今年20 歲,成績是: 100李四 今年21 歲,成績是: 96小王 今年20 歲,成績是: 98
對文件的讀寫示例:
文本文件的寫方法:
模式字符串:"w"/"x"/"a"
F.write(字符串)
F.writelines(字符串列表)
definput_data():
l=[]whileTrue:
x= input("請輸入你要存入的數(shù)據(jù):")if x == "":breakl.append(x)return l #將鍵盤輸入的數(shù)據(jù)存在列表中
#f = open("input.txt","rt")
defwrite_data(l):try:
f= open("input.txt", "w") #創(chuàng)建或打開文件進(jìn)行寫操作
for i in l: #循環(huán)遍歷列表并將數(shù)據(jù)寫入文件中
f.write(i)
f.write("\n")
f.closeexceptOSError:print("存入數(shù)據(jù)失敗")
write_data(input_data())defread_data():
l=[]try:
f= open("input.txt", "rt") #讀取剛剛寫入的數(shù)據(jù)
lines =f.readlines()for line inlines:
s= line.rstrip("\n")
l.append(s)print("讀取文件成功")returnlexceptOSError:print("文件打開失敗")defprint_text(lst):for line_number ,s in enumerate(lst, 1): #利用到了迭代器中的枚舉方法
print(line_number, ":", s)if __name__ == '__main__':
print_text(read_data())
輸出結(jié)果:
tarena@tedu:~/zengsf$ python3 exercise822.py
請輸入你要存入的數(shù)據(jù):zengsf
請輸入你要存入的數(shù)據(jù):shaofeng
請輸入你要存入的數(shù)據(jù):fengshao
請輸入你要存入的數(shù)據(jù):
讀取文件成功1: zengsf2: shaofeng3 : fengshao
總結(jié)
以上是生活随笔為你收集整理的python对文件的_python对文件的读写的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 82年的拉菲多少钱一瓶?
- 下一篇: 融云发送图片消息_发送消息