Python - 文件读写操作详解1(读写普通文本文件)
作者:hangge | 2022-03-31 08:52
一、读文本文件
1,open()、close() 打开关闭文件
(1)打开一个文件用 open() 方法,参数 r 表示是读文本文件(也可以不写,默认值就是 r)。文件使用完毕后必须调用 close() 方法关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的。f = open("hangge.txt","r") f.close()
(2)使用 with 语句可以不用再手动关闭文件,Python 会自动帮我们调用 close() 方法:
(2)如果文件大于可用内存,为了保险起见,可以反复调用 read(size) 方法,每次最多读取 size 个字节的内容。
(2)使用 open 迭代的话也可以使用同样方法去掉换行符:
with open("hangge.txt","r") as f: print(f.read())
(3)open 是一个可迭代对象,可以通过 for in 循环进行处理:
f = open("hangge.txt","r") for line in f: print(line) f.close()
2,read() 读取整个文件,返回一个字符串
(1)read() 每次读取整个文件,它通常用于将文件内容放到一个字符串变量中。
f = open("hangge.txt","r") print(f.read()) f.close()
(2)如果文件大于可用内存,为了保险起见,可以反复调用 read(size) 方法,每次最多读取 size 个字节的内容。
f = open("hangge.txt","r") print(f.read(5)) f.close()
3,readlines() 读取整个文件,返回行列表
readlines() 一次性读取整个文件,并自动将文件内容分析成一个行的列表。该列表可以由 Python 的 for ... in ... 结构进行处理。
f = open("hangge.txt","r") print(f.readlines()) f.close()
4,readline() 每次只读取一行
readline() 每次只读取一行,通常比 readlines() 慢得多。仅当没有足够内存可以一次读取整个文件时,才应该使用 readline()。
f = open("hangge.txt","r") print(f.readline()) f.close()
5,去掉换行符'\n'以及空行
(1)read()、readlines()、readline() 这三种方法都会把每行末尾的'\n'也读进来,并不会默认的把'\n'去掉,需要我们手动去掉。
f = open("hangge.txt","r") lines = f.readlines() list = [] for line in lines: line = line.strip() #每行前后空格、制表符、换行符号 if len(line) > 0 : #如果是空行则跳过 list.append(line) f.close() print(list)
(2)使用 open 迭代的话也可以使用同样方法去掉换行符:
f = open("hangge.txt","r") list = [] for line in f: line = line.strip() #每行前后空格、制表符、换行符号 if len(line) > 0 : #如果是空行则跳过 list.append(line) f.close()
二、写文本文件
1,open()、close()打开关闭文件
(1)open() 方法使用 w 模式表示覆盖写入:如果没有这个文件,就创建一个;如果有,那么就会先把原文件的内容清空再写入新的东西。
f = open("hangge.txt","w") f.write("欢迎访问hangge.com"); f.close()
(2)open() 方法使用 a 模式表示追加写入:如果没有这个文件,就创建一个;如果有,则不会清空原来的内容而是直接在后面追加新的内容。
f = open("hangge.txt","a") f.write("欢迎访问hangge.com"); f.close()
(3)文件使用完毕后必须调用 close() 方法关闭,否则会占用操作系统的资源。我们也可以使用 with 语句,这样就不用再手动关闭文件,Python 会自动帮我们调用 close() 方法:
with open("hangge.txt","w") as f: f.write("欢迎访问hangge.com");
2,write() 将字符串写入到文件中
write() 方法和 read()、readline() 方法对应,是将字符串写入到文件中。f = open("hangge.txt","w") f.write("欢迎访问hangge.com"); f.close()
3,writelines() 将字符串列表写入到文件中
(1)writelines() 方法和 readlines() 方法对应,接收一个字符串列表作为参数,将他们写入到文件中。注意:换行符不会自动的加入。
f = open("hangge.txt","w") f.writelines(["第1行","第2行","第3行"]); f.close()
(2)如果需要每一行都能自动换行,则需要显式的加入换行符:
f = open("hangge.txt","w") f.writelines(["第1行\n","第2行\n","第3行\n"]); f.close()
全部评论(0)