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

首頁 > 編程 > Python > 正文

給Python學習者的文件讀寫指南(含基礎與進階)

2020-02-15 21:28:45
字體:
來源:轉載
供稿:網友

對于初學者來說,一份詳盡又清晰明白的指南很重要。今天,貓貓跟大家一起,好好學習Python文件讀寫的內容,這部分內容特別常用,掌握后對工作和實戰都大有益處。學習是循序漸進的過程,欲速則不達。文章較長,建議大家收藏,以備復習查閱哦。

1、如何將列表數據寫入文件?
2、如何從文件中讀取內容?
3、多樣需求的讀寫任務
4、從with語句到上下文管理器

如何將列表數據寫入文件?

首先,我們來看看下面這段代碼,并思考:這段代碼有沒有問題,如果有問題的話,要怎么改?

li = ['python',' is',' a',' cat']with open('test.txt','w') as f:  f.write(li)

現在公布答案,這段代碼會報錯:

TypeError  Traceback (most recent call last)
<ipython-input-6-57e0c2f5a453> in <module>()
      1 with open('test.txt','w') as f:
----> 2     f.write(li)

TypeError: write() argument must be str, not list

以上代碼的想法是將list列表內容寫入txt文件中,但是報錯 TypeError: write() argument must be str。就是說,write()方法必須接受字符串(str)類型的參數。

Python中內置了str()方法,可以返回字符串版本的對象(Return a string version of object)。所以,上面的例子中,我們試試把 f.write(li) 改為 f.write(str(li)) ,先做一下字符串類型的轉化看看。代碼略。

這次沒有報錯了,但是打開文件就傻眼了吧,寫入的內容是“['python',' is',' a',' cat']”。怎么才能寫成“python is a cat”呢?

文件寫操作還有一個writelines()方法,它接收的參數是由字符串組成的序列(sequence),實際寫入的效果是將全部字符串拼接在一起。字符串本身也是一種序列,所以當參數是字符串的時候,writelines()方法等價于write()。

# 以下3種寫法等價,都是寫入字符串“python is a cat”In [20]: with open('test.txt','w') as f:  ...:   f.writelines(['python',' is',' a',' cat'])  ...:   f.writelines('python is a cat')  ...:   f.write('python is a cat')# 以下2種寫法等價,都是寫入列表的字符串版本“['python',' is',' a',' cat']”In [21]: with open('test.txt','w') as f:  ...:   f.write(str(['python',' is',' a',' cat']))  ...:   f.writelines(str(['python',' is',' a',' cat']))# 作為反例,以下寫法都是錯誤的:In [22]: with open('test.txt','w') as f:  ...:   f.writelines([2018,'is','a','cat']) # 含非字符串  ...:   f.write(['python','is','a','cat']) # 非字符串

由上可知,當多段分散的字符串存在于列表中的時候,要用writelines()方法,如果字符串是一整段,那直接使用write()方法。如果要以整個列表的形式寫入文件,就使用str()方法做下轉化。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高邮市| 南华县| 晋州市| 合水县| 长汀县| 方城县| 泰兴市| 和田县| 长沙市| 北京市| 晋江市| 平远县| 健康| 缙云县| 梁河县| 张家口市| 育儿| 延川县| 江陵县| 新余市| 吉安县| 府谷县| 丹阳市| 隆回县| 健康| 鹰潭市| 石首市| 贺兰县| 临漳县| 桐城市| 临清市| 苗栗市| 肇源县| 庆阳市| 海丰县| 江山市| 昌邑市| 珲春市| 崇左市| 隆林| 申扎县|