Python笔记for文件&异常
文章目录
1. 从文件中读取数据
1.1 读取整个文件
用open()语句打开文件,然后用read()读取整个文件。
#pi10000.txt是含有π小数点后10000位的文件
pi='/home/choupin/桌面/pi10000.txt'
with open(pi) as file_object:
contents=file_object.read()
print(contents.rstrip())
将文件路径和名称存储在变量中更方便使用。
关键字with:在不再需要访问文件后将其关闭;open()返回的文件对象只在with代码块内可用。
read()到达文件末尾时返回一个字符串,要删除多出来的空行,可在print语句中使用rstrip()。
1.2 文件路径
文件名传递给函数open()时,Python将在当前执行的文件所在的目录中查找文件
相对路径:从当前文件出发,到达目标文件的路径。
绝对路径:目标文件的实际路径。
1.3 逐行读取
可对文件对象使用for循环。
pi='/home/choupin/桌面/pi10000.txt'
with open(pi) as file_object:
for line in file_object:
print('line')
由于此文本文件每行末尾都有一个换行符,而print语句也会加上一个换行符,孤儿会产生多余的空白行。
同样,可在print语句中使用rstrip()消除这些多余的空白行。
1.4 创建一个包含文件各行内容的列表
为了在with代码块外访问文件的内容,可在代码块内将文件内容存入一个列表中,在with代码块外使用该列表。如
#pishorter是含有π小数点后315位的文件
pi='/home/choupin/桌面/pishorter.txt'
with open(pi) as file_object:
lines=file_object.readlines()
for line in lines:
print(line)
这里的readlines()是读取文件中的每一行,所以lines是以文件每一行作为元素的列表。
注:readline()是只读取一行,若用在此处,则lines是以一行中的每个字符为元素的列表。
1.5 使用文件的内容
文件读取到内存后,就可以以任何方式使用这些数据。
例如,此处将文件π中数据存入到一个字符串中,不包含空格。
其中为消除文件中的空格,在存入字符串时使用strip()而不是rstrip()
#pishorter是含有π小数点后315位的文件
with open(pi) as file_object:
lines=file_object.readlines()
pi_string=''
for line in lines:
pi_string+=line.strip()
print(pi_string)
print(len(pi_string))
注意:读取文本文件时。Python默认将其中所有文本解读为字符串。如果要将读取的数字作为数值使用,应该用int()或者float()转换。
1.6 处理大型文件
操作方法同上没有区别。
对于可处理的数据量,Python没有任何限制。即只要系统的内存足够多,想处理多少数据都可以。
2 写入文件
2.1 写入空文件
open()函数的第二个实参指定打开文件的模式:读取模式 (‘r’ ) 、 写入模式 (‘w’ ) 、 附加模式 (‘a’ ) 、读取和写入文件的模式(‘r+’ ) 。
写入的文件不存在时,open()函数将自动创建该文件。