python进阶学习笔记(一)
open(name[, mode[,buffering]])
open函数使用一个文件名作为唯一的强制参数,然后返回一个文件对象。假设我要打开我硬盘(I:/python/test.txt) 文件,可以用下面方法:
f = open(ri:\python\test.txt)
open函数中模式参数的常用值
基本文件方法
打开文件是第一步,下面就需要对文件进行读或写,可以write 和 read方法进行读或写。
#写入文件内容 f = open(test.txt,w) f.write(hello,) f.write(world!) f.close() # 读取文件内容 f = open(test.txt,r) f.read(4) #读取前4个字符 hell f.read() #读取剩余的所有字符 o,world!
关闭文件
应该牢记使用close方法关闭文件。尽管一个文件对象在退出程序后会自动关闭,但关闭文件是没什么害处的,可以避免在某些操作系统或设置中进行无用的修改,这样做也会避免用完系统中打开文件的配额。
使用基本文件方法
假如test.txt文件包含如下内容:
-----------------------------
Welcome to this file
There is nothing here except
This stupid haiku
-----------------------------
This stupid haiku]
readline返回一行的字符串, readlines返回包含文件所有内容的字符串列表, 每个元素是一行的字符串。
pprint 模块的pprint方法将内容分成每个小项单行显示。
下面是写文件的基本方法:
f = open(rI:\python\test.txt,w) #默认是读文件,可以不加‘r’,写文件一定要加’w’ f.write(this\nis no \nhaiku) f.close()
f = open(rI:\python\test.txt) lines = f.readlines() lines[1] = "isnt a\n" f = open(rI:\python\test.txt,w) f.writelines(lines) f.close()
对文件内容进行迭代
1、接字节处理
最常见的对文件内容进行迭代的方法是while循环中使用read方法。例如,对每个字符进行循环,可以用下面方法实现:
f = open(filename) char = f.read(1) while char: process(char) char = f.read(1) f.close()
read方法返回的字符串会包含一个字符,直到文件末尾,read返回一个空的字符串,char将变为假。
可以看到,char = f.read(1) 被重复地使用,代码重复通过被认为是一件坏事,看看下面的方法:
f = open(filename) while True: char = f.read(1) if not char: break process(char) f.close()
这里break语句被频繁的使用(这样会让代码比较难懂),尽管如此,但它仍然要比前面的方法好。
2、读取所有内容
如果文件不是很大,那么可以使用不带参数的read方法一次读取整个文件,或者使用readlines方法。
#用read迭代每个字符 f = open(filename) for char in f.read(): process(char) f.close()好吧!这是python2.2之后才有的方法,如果它一开始就有,上面的方法也许就不存在了。文件对象是可以迭代的,这就意味着可以直接在for循环中对他们进行迭代
f = open(filename) for line in f: process(line) f.close()
再来看下面例子:
f = open(rI:\python\test.txt,w) f.write(First line\n) f.write(Second line\n) f.write(Third line\n) f.close() lines = list(open(rI:\python\test.txt)) lines [First line\n, Second line\n, Third line\n] first,second,third = open(rI:\python\test.txt) first First line\n second Second line\n third Third line\n在这个例子中:
使用序列来对一个打开的文件进行解包操作,把每行都放入一个单独的变理中,这么做是很有实用性的,因为一般不知道文件中有多少行,但它演示的文件的“迭代性”。 在写文件后一定要关闭文件,这样才能确保数据被更新到硬盘。
【python进阶】你真的懂元组吗?不仅是“不可变的列表” 在学习python的过程中,我们对元组的第一印象就是”不可变的列表“,但其还有很多隐藏功能等待我们使用,本文带你一起解锁元组新玩法,打通python进阶的大门。
【python进阶】你还在使用for循环新建数组?生成器表达式帮你一行解决 在本文中,介绍了生成器与表达式的用法,帮助我们快速创建数组以及其他序列,解锁了python序列的新姿势。在后续的更新中,我将继续对元组的高级姿势和玩法进行介绍。
【第二弹】Python题库刷题---从基础到进阶 上一篇文章我们介绍Python刷题第一弹,介绍了一个非常好的刷题网站 点击跳转刷题网站进行注册学习。上一篇文章我们主要就是学习掌握Python环境的安装配置以及Python内置的数据类型和字符串。这篇文章我们接着来学习列表和循环等相关知识点。
相关文章
- 【Python成长之路】python 基础篇 -- global/nonlocal关键字使用
- Python 字符串内置方法笔记
- python基础学习笔记(五)
- python基础学习笔记(十三)
- Python笔记-进程Process、线程Thread、上锁
- 机器学习笔记 - 使用python代码实现易于理解的反向传播
- 机器学习笔记 - 基于python库Scikit-Learn的集成学习
- Python语言学习:python语言代码调试—异常处理之详细攻略
- Python语言学习:利用python获取当前/上级/上上级目录路径(获取路径下的最后叶目录的文件名、合并两个不同路径下图片文件名等目录/路径案例、正确加载图片路径)之详细攻略
- Python语言学习:基于python五种方法实现使用某函数名【func_01】的字符串格式('func_01')来调用该函数【func_01】执行功能
- Python语言学习之字符串那些事:python和字符串的使用方法之详细攻略
- python毕设案例教学: 基于数据挖掘在京东客户评价方面的研究与应用
- 从零开始学习python | 实例讲解如何制作Python模式程序
- 《简明Python编程》核心笔记(1~5章)
- Python:mysql-connector-python模块对MySQL数据库进行增删改查
- Python学习笔记24:Django搭建简单的博客站点(二)
- 学习笔记 | Python入门教程
- python基础教程_学习笔记14:标准库:一些最爱——re
- 软件测试笔记 / 自动化测试和手动测试的选择(python篇)
- Python学习笔记(九)—— 函数
- Python学习笔记(八)—— 使用dict和set
- Python爬虫:Xpath语法笔记
- Python数模笔记-Sklearn(2)聚类分析
- Python学习笔记之小派读诗
- Python学习笔记五之错误与异常处理、面向对象实例
- 强化学习笔记:基于策略的学习之策略迭代(python实现)
- 学习笔记(05):Python爬虫开发-数据解析