当前位置: > > > Python - 文件读写操作详解1(读写普通文本文件)

Python - 文件读写操作详解1(读写普通文本文件)

一、读文本文件

1,open()、close() 打开关闭文件

(1)打开一个文件用 open() 方法,参数 r 表示是读文本文件(也可以不写,默认值就是 r)。文件使用完毕后必须调用 close() 方法关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的。
f = open("hangge.txt","r")
f.close()

(2)使用 with 语句可以不用再手动关闭文件,Python 会自动帮我们调用 close() 方法:
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