zl程序教程

您现在的位置是:首页 >  后端

当前栏目

python进阶学习笔记(一)

2023-09-14 08:57:55 时间

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内置的数据类型和字符串。这篇文章我们接着来学习列表和循环等相关知识点。