国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python中文件I/O高效操作處理的技巧分享

2020-02-23 04:20:47
字體:
供稿:網(wǎng)友

如何讀寫文本文件?

實(shí)際案例

某文本文件編碼格式已直(如UTF-8,GBK,BIG5),在python2.x和python3.x中分別如何讀取這些文件?

解決方案

字符串的語義發(fā)生了變化:

python2 python3
str bytes
unicode str

python2.x 寫入文件前對(duì) unicode 編碼,讀入文件后對(duì)二進(jìn)制字符串解碼

>>> f = open('py2.txt', 'w')>>> s = u'你好'>>> f.write(s.encode('gbk'))>>> f.close()>>> f = open('py2.txt', 'r')>>> t = f.read()>>> print t.decode('gbk')你好

python3.x 中 open 函數(shù)指定 t 的文本模式, encoding 指定編碼格式

>>> f = open('py3.txt', 'wt', encoding='utf-8')>>> f.write('你好')2>>> f.close()>>> f = open('py3.txt', 'rt', encoding='utf-8')>>> s = f.read()>>> s'你好'

如何設(shè)置文件的緩沖

實(shí)際案例

將文件內(nèi)容寫入到硬盤設(shè)備時(shí),使用系統(tǒng)調(diào)用,這類I/O操作的時(shí)間很長(zhǎng),為了減少I/O操作的次數(shù),文件通常使用緩沖區(qū)(有足夠多的數(shù)據(jù)才進(jìn)行系統(tǒng)調(diào)用),文件的緩存行為,分為全緩沖、行緩存、無緩沖。

如何設(shè)置Python中文件對(duì)象的緩沖行文?

解決方案

全緩沖: open 函數(shù)的 buffering 設(shè)置為大于1的整數(shù)n,n為緩沖區(qū)大小

>>> f = open('demo2.txt', 'w', buffering=2048)>>> f.write('+' * 1024)>>> f.write('+' * 1023)# 大于2048的時(shí)候就寫入文件>>> f.write('-' * 2)>>> f.close()

行緩沖: open 函數(shù)的 buffering 設(shè)置為1

>>> f = open('demo3.txt', 'w', buffering=1)>>> f.write('abcd')>>> f.write('1234')# 只要加上/n就寫入文件中>>> f.write('/n')>>> f.close()

無緩沖: open 函數(shù)的 buffering 設(shè)置為0

>>> f = open('demo4.txt', 'w', buffering=0)>>> f.write('a')>>> f.write('b')>>> f.close()

如何將文件映射到內(nèi)存?

實(shí)際案例

    在訪問某些二進(jìn)制文件時(shí),希望能把文件映射到內(nèi)存中,可以實(shí)現(xiàn)隨機(jī)訪問.(framebuffer設(shè)備文件)
    某些嵌入式設(shè)備,寄存器唄編址到內(nèi)存地址空間,我們可以映射 /dev/mem 某范圍,去訪問這些寄存器
    如果多個(gè)進(jìn)程映射到同一個(gè)文件,還能實(shí)現(xiàn)進(jìn)程通信的目的

解決方案

使用標(biāo)準(zhǔn)庫中的 mmap 模塊的 mmap() 函數(shù),它需要一個(gè)打開的文件描述符作為參數(shù)

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 禄劝| 格尔木市| 象山县| 三穗县| 五常市| 十堰市| 洛阳市| 四川省| 北票市| 普安县| 手游| 建宁县| 雷州市| 大丰市| 阳江市| 汶川县| 小金县| 赣榆县| 城步| 略阳县| 宝丰县| 南充市| 临海市| 尼勒克县| 布拖县| 屏山县| 正安县| 水城县| 神池县| 裕民县| 林周县| 新营市| 嘉定区| 九江市| 曲周县| 龙里县| 碌曲县| 舒城县| 镇康县| 普安县| 镇安县|