精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

給Python新手的一道面試題:如何正確讀寫文件

開發(fā) 開發(fā)工具
讀寫文件時(shí),應(yīng)該考慮的問題包括:字符編碼問題,操作完文件要即時(shí)關(guān)閉文件描述符,同時(shí)還要注意代碼的兼容性。

 

[[203305]]

這是我司前段時(shí)間招人筆試中一道比較簡(jiǎn)單題,面向初中級(jí)程序員,不過很少有人能回答完整的,問題本身不難,主要還是考察動(dòng)手能力和基本代碼功,準(zhǔn)備找工作的先收藏留著以后用得著。

看題:請(qǐng)指出下面代碼段中的錯(cuò)誤

  1. >>> f = open("test.txt", mode="w"
  2. >>> f.write(u"python之禪") 

分析:Python 提供了內(nèi)建函數(shù) open 用于讀寫文件,函數(shù)返回一個(gè)文件對(duì)象,可對(duì)文件進(jìn)行讀、寫操作,用參數(shù) mode 來控制。

默認(rèn)是讀文件

  1. >>> f = open("test.txt") 
  2. >>> f.read() 
  3. python之禪 

上面這段代碼如果在python2中運(yùn)行,會(huì)報(bào)錯(cuò):

  1. Traceback (most recent call last): 
  2. File ““, line 1, in 
  3. UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 6-7: ordinal not in range(128) 

這是一個(gè)字符編碼的問題,編碼錯(cuò)誤是Python程序員最經(jīng)常遇到的錯(cuò)誤,之前在公眾號(hào)中寫過關(guān)于編碼錯(cuò)誤的原因。

之所以報(bào)錯(cuò)是程序沒法直接保存 unicode 字符串,要經(jīng)過編碼轉(zhuǎn)換成而 str 類型的二進(jìn)制字節(jié)序列才能夠保存。

write 方法會(huì)自動(dòng)幫你做編碼轉(zhuǎn)換,默認(rèn)使用 ascii 編碼格式,因?yàn)?ascii 字符集不能處理中文,所以出現(xiàn)了 UnicodeEncodeError 錯(cuò)誤。

正確的方式是在調(diào)用 write 之前手動(dòng)用 utf-8 或者 gbk 編碼轉(zhuǎn)換成 str 類型。

  1. >>> f = open("test.txt", mode="w"
  2. >>> content = u"Python之禪" 
  3. >>> contentcontent = content.encode(encoding='utf-8'
  4. >>> f.write(content) 

第二個(gè)問題是文件對(duì)象沒有正常關(guān)閉,有人可能要問了,不關(guān)閉會(huì)有什么影響,操作完文件時(shí),如果不關(guān)閉文件,那么將對(duì)系統(tǒng)造成資源浪費(fèi),因?yàn)橄到y(tǒng)可打開的文件描述符數(shù)量是有限制,比如 Linux 是 65536,所以必須要關(guān)閉文件。

  1. >>> f = open("test.txt", mode="w"
  2. >>> content = u"Python之禪" 
  3. >>> contentcontent = content.encode(encoding='utf-8'
  4. >>> f.write(content) 
  5. >>> f.close() 

close 就萬事大吉了嗎?未必。

因?yàn)橛锌赡茉谡{(diào)用 open 函數(shù)的時(shí)候就報(bào)錯(cuò)了,比如因?yàn)闄?quán)限問題沒法在該目錄讀寫文件,此時(shí),文件對(duì)象都沒創(chuàng)建成功,調(diào)用close肯定會(huì)報(bào)錯(cuò)。

再比如在第4行 write 的時(shí)候有可能報(bào)錯(cuò),因?yàn)榇疟P空間不足,這個(gè)時(shí)候報(bào)錯(cuò)了, close 方法就沒有機(jī)會(huì)執(zhí)行了。

正確地做法是用 try except 對(duì)異常進(jìn)行捕獲。注意,open 函數(shù)要在 try 代碼塊外面

  1. f = open("output.txt", "w") 
  2. try: 
  3.    content = u"Python之禪" 
  4.    f.write(content.encode(encoding='utf-8')) 
  5. except IOError as e: 
  6.     print("oops, %s" % e.args[0]) 
  7. finally: 
  8.     f.close() 

不過,更優(yōu)雅的寫法是用 with ... as 寫法,因?yàn)?文件對(duì)象實(shí)現(xiàn)了上下文管理器協(xié)議,程序進(jìn)入 with 語句塊時(shí),會(huì)把文件對(duì)象賦值給變量 f,在程序退出 with 語句塊的時(shí)候會(huì)地自動(dòng)調(diào)用 close 方法。

  1. with open("output.txt", "w") as f: 
  2.      content = u"Python之禪" 
  3.     f.write(content.encode(encoding='utf-8')) 

***還有一個(gè)問題是兼容性,python2 與python3 的 open 函數(shù)不一樣,后者可以在函數(shù)中指定字符編碼格式,而 python2 則沒有。

  1. # python3 
  2.  
  3. with open("output.txt", "w", encoding="utf-8") as f: 
  4.      content = u"Python之禪" 
  5.     f.write(content) 

那么如何寫出同時(shí)兼容2和3的open函數(shù)呢?

沒錯(cuò),使用 io 模塊下的 open 函數(shù),python2 中的 io.open 等價(jià)于 python3 中的 open 函數(shù),可以指定 encoding 參數(shù),同時(shí) python3 也保留有 io.open 函數(shù)

  1. from  io import open 
  2. with open("output.txt", "w", encoding='utf-8') as f: 
  3.     f.write(u"python之禪") 

【本文是51CTO專欄作者“劉志軍”的原創(chuàng)文章,作者微信公眾號(hào):Python之禪(VTtalk)】

戳這里,看該作者更多好文

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2024-10-11 17:09:27

2011-05-23 11:27:32

面試題面試java

2018-03-06 15:30:47

Java面試題

2009-08-11 10:12:07

C#算法

2023-02-04 18:24:10

SeataJava業(yè)務(wù)

2009-08-11 14:59:57

一道面試題C#算法

2021-05-31 07:55:44

smartRepeatJavaScript函數(shù)

2022-04-08 07:52:17

CSS面試題HTML

2009-08-11 15:09:44

一道面試題C#算法

2017-11-21 12:15:27

數(shù)據(jù)庫面試題SQL

2023-08-01 08:10:46

內(nèi)存緩存

2021-03-16 05:44:26

JVM面試題運(yùn)行時(shí)數(shù)據(jù)

2021-10-28 11:40:58

回文鏈表面試題數(shù)據(jù)結(jié)構(gòu)

2022-02-08 18:09:20

JS引擎解析器

2015-09-02 14:09:19

面試題程序設(shè)計(jì)

2017-03-10 09:33:16

JavaScript類型

2011-03-02 10:58:16

SQL server入門面試題

2021-03-27 10:59:45

JavaScript開發(fā)代碼

2011-06-14 09:12:03

JavaScript

2018-04-26 11:23:01

Linuxfork程序
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

欧美日韩1区2区| 91蜜桃视频在线| 久久艹在线视频| 精品伦一区二区三区| 一区二区精品伦理...| 中文字幕欧美日本乱码一线二线| 成人h片在线播放免费网站| 九九精品在线观看视频| 国产99久久| 欧美一级黄色片| 成人观看免费完整观看| 国产色在线观看| 99久久99久久免费精品蜜臀| 国产精品亚洲欧美导航| 日本亚洲欧美在线| 首页国产精品| 日韩电影视频免费| 亚洲一级片免费观看| 在线观看网站免费入口在线观看国内| 国产精品乱码人人做人人爱| 精品乱子伦一区二区三区| 一本到在线视频| 亚洲在线视频| 欧美国产日本在线| 欧美xxxooo| 久久99蜜桃| 亚洲精品一线二线三线无人区| 天美星空大象mv在线观看视频| 福利在线导航136| 成人欧美一区二区三区白人| 欧美综合77777色婷婷| 二区三区在线视频| 精品一区二区在线看| 热久久美女精品天天吊色| 青娱乐国产精品| 日韩成人综合| 亚洲男人天堂九九视频| 97中文字幕在线观看| 成人国产精选| 91成人看片片| 亚洲国产精品久久久久爰色欲| 都市激情久久综合| 一区二区免费在线| 91麻豆天美传媒在线| a√在线中文网新版址在线| 久久久三级国产网站| 韩国成人一区| 欧美一区二区三区黄片| 成人一区二区三区中文字幕| 亚洲free性xxxx护士hd| 国产又黄又大又爽| 久久99精品久久只有精品| 国产精品久久久久9999| 无码人妻久久一区二区三区| 午夜在线一区二区| 7777免费精品视频| 亚洲天堂av片| 亚洲自啪免费| 日韩免费观看网站| 无码视频一区二区三区| 丝袜亚洲精品中文字幕一区| 欧美在线日韩在线| 亚洲天堂五月天| 久久伊人亚洲| 国产精品视频区1| 中文字幕永久在线视频| 精品一区二区三区在线视频| 成人av电影天堂| 91在线精品入口| 国产一区二区伦理片| 亚洲一区二区三区在线视频 | 亚洲444eee在线观看| 国产日韩亚洲欧美在线| www.综合| 一本大道综合伊人精品热热| 999精品视频在线| 涩涩涩久久久成人精品| 欧美一卡在线观看| 亚洲图片欧美另类| 偷拍自拍亚洲色图| 欲色天天网综合久久| 韩国一级黄色录像| 韩国欧美一区| 国产91久久婷婷一区二区| 正在播放亚洲精品| 国产一区二区在线影院| 国产精品一区二区三区精品 | 色哟哟入口国产精品| 小嫩苞一区二区三区| 国产一区二区中文| 日本精品久久久久久久| 97国产精品久久久| 成人免费三级在线| 日韩欧美视频一区二区| 国产91在线视频蝌蚪| 亚洲国产精品久久人人爱蜜臀| 北条麻妃在线观看| 91精品国产自产观看在线| 亚洲国产成人精品女人久久久| 亚洲色成人网站www永久四虎| 五月婷婷亚洲| 欧美综合一区第一页| 91无套直看片红桃| 久久一夜天堂av一区二区三区| 亚洲一区二区三区加勒比| 国产精品蜜臀| 欧美肥妇毛茸茸| 性欧美丰满熟妇xxxx性久久久| 欧美xxxxx视频| 久久久久久久久久久免费精品| 蜜臀99久久精品久久久久小说| 国产乱码一区二区三区| 欧洲一区二区在线观看| 久久亚洲资源| 欧美精品v国产精品v日韩精品| 午夜一区二区三区免费| 一区二区三区在线| 国产精品99久久99久久久二8| 亚洲va久久久噜噜噜无码久久| 国产欧美日韩一区二区三区在线观看| 欧美视频在线第一页| 粉嫩av一区二区三区四区五区| 亚洲第一色中文字幕| 午夜三级在线观看| 日韩高清国产一区在线| 精品一区久久久| caoporm免费视频在线| 欧美性大战久久久| 三上悠亚ssⅰn939无码播放| 亚洲图片在线| 91精品婷婷国产综合久久蝌蚪| av黄色在线观看| 一本色道久久加勒比精品| 扒开伸进免费视频| 国内自拍一区| 99精品国产高清在线观看| 麻豆网站在线观看| 欧美性生交片4| 90岁老太婆乱淫| 国产日韩欧美三区| 国产成人免费观看| 国产网友自拍视频导航网站在线观看 | 久久久综合亚洲91久久98| 91最新在线视频| 777奇米成人网| 在线日韩国产网站| 麻豆视频观看网址久久| 视频一区视频二区视频| 国产第一精品| 中文字幕在线看视频国产欧美| 波多野结衣在线电影| 久久久精品综合| 精品一卡二卡三卡| 国内精品伊人久久久| 国产精品爱啪在线线免费观看| 精品资源在线看| 在线观看日韩国产| 成人性生交大片免费看无遮挡aⅴ| 久久精品亚洲| 手机看片福利永久国产日韩| 99精品国自产在线| 久久精品成人欧美大片| 国产视频在线观看视频| 亚洲已满18点击进入久久| 岛国av免费观看| 国产模特精品视频久久久久| 欧美黑人xxxxx| 视频在线日韩| 丝袜美腿精品国产二区| 国产乱淫av免费| 中文字幕佐山爱一区二区免费| 四川一级毛毛片| 亚洲美女黄网| 欧美亚洲免费在线| 日韩一区二区三免费高清在线观看| 久久精品夜夜夜夜夜久久| www.香蕉视频| 欧美日韩免费看| 青青青视频在线播放| 国产精品91xxx| 91专区在线观看| 成人影院在线| 91网免费观看| 波多野结衣久久精品| 综合网中文字幕| 亚洲精品久久久久久久久久久久久久| 五月激情综合色| 国产福利在线导航| 成人精品免费视频| 免费看a级黄色片| 亚洲先锋影音| 久久影院理伦片| 91麻豆精品| 欧美一区二区.| 看女生喷水的网站在线观看| 亚洲国产福利在线| 在线免费av网| 午夜免费久久看| 国产主播av在线| www.亚洲精品| 亚洲va在线va天堂va偷拍| 亚洲精品社区| 在线观看免费91| 亚洲女娇小黑人粗硬| 亚洲aa中文字幕| 范冰冰一级做a爰片久久毛片| 久久精视频免费在线久久完整在线看| 日韩有码第一页| 7777精品伊人久久久大香线蕉的 | 日本韩国精品在线| 岛国毛片在线观看| 国产日产欧美一区二区视频| 97中文字幕在线观看| 免费成人在线观看视频| 亚洲国产精品久久久久婷蜜芽| 欧美福利影院| 亚洲欧洲日本国产| 最新亚洲精品| 国产欧美日韩综合精品二区| 国产精品毛片无码| 国产精品av在线| 无遮挡爽大片在线观看视频| 色综合色综合久久综合频道88| 亚乱亚乱亚洲乱妇| 国产亚洲精品久久久久动| 特黄aaaaaaaaa真人毛片| 欧美肥妇毛茸茸| 一区二区小视频| 色综合久久综合网欧美综合网| 亚洲精品在线观看av| 日韩久久一区二区| 精品日韩在线视频| 国产拍欧美日韩视频二区| 国产精品无码电影| 菠萝蜜视频在线观看一区| 中文字幕亚洲日本| 国产精品亚洲а∨天堂免在线| 天天插天天操天天射| 亚久久调教视频| 免费在线a视频| 亚洲作爱视频| 18岁网站在线观看| 国产日韩欧美三区| 欧美色图另类小说| 美女诱惑黄网站一区| 国产91在线视频观看| 亚洲欧美日韩国产综合精品二区| 成人免费观看在线| 在线看片欧美| 久久久亚洲精品无码| 亚洲日本黄色| 国产精品免费观看久久| 午夜影院日韩| 亚洲 中文字幕 日韩 无码| 日韩综合一区二区| 国产精品视频黄色| 久久精品免费观看| 亚洲18在线看污www麻豆| 精品一区二区在线视频| 污免费在线观看| 国产91精品在线观看| 北京富婆泄欲对白| 久久综合资源网| 成人在线手机视频| 中文字幕在线不卡一区二区三区| 久久福利免费视频| 亚洲午夜电影在线| 日韩欧美成人一区二区三区| 91黄色小视频| 999av视频| 精品久久人人做人人爽| 三级无遮挡在线观看| 亚洲午夜国产成人av电影男同| 2017亚洲天堂1024| 欧美精品免费播放| 久久青草伊人| 国产精品视频地址| 亚洲天堂av资源在线观看| 国精产品一区二区| 成人在线丰满少妇av| 免费看污污视频| 伊人久久综合| 熟妇人妻无乱码中文字幕真矢织江| 麻豆91小视频| 久久人妻少妇嫩草av蜜桃| 国产日韩欧美激情| 国产成人自拍网站| 欧美日韩精品在线视频| 中文字幕日韩经典| 精品久久一区二区| 第九色区av在线| 欧美猛交免费看| 范冰冰一级做a爰片久久毛片| 91午夜在线播放| 天天躁日日躁狠狠躁欧美巨大小说| 性刺激综合网| 亚洲精华国产欧美| 中文字幕资源在线观看| 99re8在线精品视频免费播放| 国产一二三四视频| 天天综合色天天综合| 一级黄色片在线| 亚洲国产精品成人精品| 美女羞羞视频在线观看| 91福利视频网| 精品午夜视频| 日韩亚洲视频| 99国产精品视频免费观看一公开| 超碰超碰在线观看| aaa亚洲精品一二三区| 国产又色又爽又高潮免费| 狠狠久久五月精品中文字幕| 国产又粗又猛又爽又黄视频 | 在线播放毛片| 欧美性视频网站| 亚洲大奶少妇| 亚洲第一页在线视频| 久久精品动漫| 亚洲国产果冻传媒av在线观看| 亚洲欧美区自拍先锋| 国产99久久久久久免费看| 亚洲第一二三四五区| www视频在线看| 国产精品高清网站| 亚洲丝袜啪啪| 黄色片视频在线免费观看| 国产成人啪午夜精品网站男同| 欧美xxxooo| 欧美色图12p| 国产在线免费观看| 日韩免费黄色av| 一区二区三区四区在线看| 欧美大片在线播放| 99久久精品免费看国产免费软件| 国产精品久久久精品四季影院| 欧美日韩中文字幕一区二区| 免费在线毛片| 热99精品里视频精品| 美腿丝袜亚洲图片| www精品久久| 成人av午夜电影| 久久精品国产亚洲AV无码男同| 欧美一激情一区二区三区| 大片免费在线看视频| 亚洲bt欧美bt日本bt| 中文字幕一区二区三区在线视频| 日韩一区二区三区久久| 中文字幕亚洲在| 一级片aaaa| 久久视频在线视频| 精品一区二区三区中文字幕| 好吊色这里只有精品| 国产老肥熟一区二区三区| 福利所第一导航| 精品日韩欧美在线| av漫画网站在线观看| 国模精品一区二区三区| 亚洲一级在线| 老头老太做爰xxx视频| 欧美色区777第一页| 日本欧美在线视频免费观看| 91久久久久久久久久久久久| 在线成人激情| 亚洲天堂2024| 欧美性xxxxxxxxx| 浮生影视网在线观看免费| 国产精品影片在线观看| 亚洲美女视频| 污污污www精品国产网站| 欧美日韩亚洲一区二| 超碰在线国产| 91免费综合在线| 在线播放一区| 乐播av一区二区三区| 欧美老肥妇做.爰bbww| 亚洲综合影视| 久久99精品久久久水蜜桃| 丝袜美腿成人在线| 羞羞在线观看视频| 亚洲精品一区二区三区在线观看| 男人最爱成人网| 伊人久久av导航| 成人性生交大合| 69av视频在线观看| 不卡av在线网站| 欧美jizz19性欧美| 不卡av免费在线| 一区二区三区在线观看国产| 欧美在线一卡| 92看片淫黄大片欧美看国产片| 亚洲区第一页| 亚洲精品国产精品乱码在线观看| 欧美xxxx在线观看| 欧美日韩精品免费观看视完整| 男同互操gay射视频在线看| 99视频有精品| 国产男男gay体育生网站| 欧美性视频精品| 欧美激情无毛| 国产18无套直看片|