日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 学习汇总1:文件读写 tcy

發布時間:2024/1/18 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 学习汇总1:文件读写 tcy 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文件讀寫 2018/11/12 =============================================================================== 1.1文件對象 open(name[, mode[, buffering]],encoding) #打開文件返回文件對象 參數: # 1buffering0無緩沖;大于1緩沖區大小字節;負數默認緩沖區大小;用 flush 或者 close 時才會更新 # 2)字符編碼: 默認encoding='UTF-8' ;例如encoding='gbk'讀取GBK編碼的文件 # 3errorserrors='ignore'忽略錯誤 # 編不規范文件(在文件中夾雜一些非法編碼字符)會UnicodeDecodeError ---------------------------------------------------------------- 1.2.屬性 f.closed #文件已關閉返回True f.mode #文件的I/O模式 f.name #文件名稱 f.newlines #換行符為None 或其他換行符 f.encoding #文件編碼 ----------------------------------------------------------------1.3.方法 f.read([size]) #讀文件字符串 (缺省:全部;size:字符串長度;末尾\nfile.readline([n]) #讀一行信息 (缺省:讀一行;n:讀n個字符;尾加\n;) f.readlines() #讀出所有行 (尾\n['Welcome \n', 'There\n', 'ha\n'] f.write(string) # str寫文件 f.write('This is a test\n')#15 f.writelines(list) # list中字符串連續寫入文件沒有換行 f.seek(offset,from_what) #移動文件指針 # 偏移量Offset:指定引用位置移動 offset # 起始位置from_what0文件開始(默認);1指針位置,2末尾 f.tell() #當前文件位置int f.close() #關閉文件返回True f.fileno() #獲得文件描述符數字 f.flush() #清除輸出緩沖區刷新輸出緩存 f.isatty() #文件是交互終端=True f.truncate([size]) #截取文件大小為size f.fileno() #返回一個整數文件描述符 f.next #返回下一行或StopIteration --------------------------------------------------------------- 1.4.實例 # 實例1f = open('/Users/michael/gbk.txt', 'r', encoding='gbk', errors='ignore') # 實例2filename=r"C:\somefile.txt" f = open(filename)while True:str_text = f.read(); #f.readline();f.readlines():#運用迭代否則占用太多的內存 if not str_text:f.closebreak def process(string):print( "Processing: ", string)process(str_text)=============================================================================== 2.上下文管理# with應用 with open(filename) as f:pass # 等價于: try:f = open('/path/to/file', 'r')print(f.read()) finally:if f:f.close()=============================================================================== 3.迭代# 1)文件迭代器 f = open(filename) for line in f:process(line) f.close()# 2)使用fileinput實現懶惰行迭代 import fileinputdef process(string):print( "Processing: ", string)for line in fileinput.input(filename):print(line.strip()) # 把末尾的'\n'刪掉 process(line)===============================================================================4.綜合實例:#計算文件行數 #方法1:計算文件行數 def fileline_n(filename):import os#os.path.exists(filename) #文件及文件夾存在 if (not os.path.isfile(filename)):return 'not exit'+filenamen=0 with open(filename,'r') as file:for line in file: n+=1 return nfilename=r'c:\file_tcy1.txt' print(fileline_n(filename))# ****************************************************************** #方法2:計算文件行數 def fileline_n1(filename):import os#os.path.exists(filename) #文件及文件夾存在 if (not os.path.isfile(filename)):return 'not exit'+filenamen=0 with open(filename,'r') as file:while True:buffer = file.read(1024 * 8192)if not buffer:break n+= buffer.count('\n')return n =================================================================================

?

?

附錄:

文件讀寫模式類型

r

文件讀(默認)

r+???

文件讀寫

rU或Ua

文件讀(提供通用換行符支持)

rb???

文件讀(二進制)

rb+???

文件讀寫(二進制)

w????

文件寫(存在清空,無創建)

w+???

文件讀寫(存在清空,無創建)

wb???

文件寫(二進制w)

wb+???

文件讀寫(二進制+w)

a????

文件讀追加(從eof開始追加到文件末尾;無創建)

a+???

讀寫模式 (參見 a ) 文件指針移到文件尾

ab???

二進制追加模式(參見 a )

ab+???

二進制讀寫模式打開 (參見 a+ )

二進制文件讀寫 2018/6/15=============================================================================== 1.說明: # 1)Windows ASCII文件行尾自動添加行結束符 # 2)文本文件沒用b模式只允許從文件頭計算相對位置 # 3)讀寫復雜二進制數據格式最好使用該struct 模塊。 # 4)規則數據(如整數或浮點數的同類列表)使用該array模塊。=============================================================================== 2.1.一般方式:#二進制文件讀寫f = open('/tmp/workfile', 'rb+')f.write(b'0123456789abcdef')#16 f.seek(5) # Go to the 6th byte in the file f.read(1) #b'5' f.seek(=3, 2) # Go to the 3rd byte before the end #13 f.read(1) #b'd' f.readline() 2.2.struct 方式:#二進制文件讀寫 # 獲取一個包含二進制數據(通常是數字)的字符串并將其轉換為Python對象; 反之亦然。#讀取兩個2字節整數和一個大端格式的4字節整數: import struct with open(filename, "rb") as f:s = f.read(8) #b'\xff\xd8\xff\xe1\x00\x18Exif\x00\x00...' # 十六進制字節 x, y, z = struct.unpack(">hhl", s)說明:字符串中'>'強制大端數據; 字母'h'讀取一個“短整數”(2個字節)'l'從字符串中讀取一個長整數”(4個字節)。===============================================================================

總結

以上是生活随笔為你收集整理的python 学习汇总1:文件读写 tcy的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。