Python 文件的读写操作

文章目录

    • 1. 文件对象
      • 1.1 文件打开方式
        • 1.1.1 打开文件
        • 1.1.2 关闭文件
        • 1.1.3 访问模式
      • 1.2文件读取
        • 1.2.1 read()
        • 1.2.2 readline()
        • 1.2.3 readlines()
      • 1.3 文件迭代
      • 1.4 文件输入
        • 1.4.1 write()
        • 1.4.2 writelines()

1. 文件对象

文件读写操作:

  • 把大象放冰箱里,拢共分几步?
  • 准备字典文件

函数速查:

常用函数 功能
f = open(‘PATH’) 打开指定路径的文件f 是文件对象。
f.read() 从文件对象中读取文件内容
f.readline() 读取一行内容
f.readlines() 返回一个列表,元素是文件的每一行内容
f.write() 向文件中写入内容
f.writelines() 以列表的方式向文件中写入内容。
f.close() 关闭文件
time.sleep() 沉睡响应的秒数

1.1 文件打开方式

1.1.1 打开文件

使用open() 函数打开 1.txt 文件,指定只读模式文件(打开冰箱门)

基本语法:

#打开文件
f = open("1.txt")

#查看文件类型
print(type(f))

image-20230918211345593

1.1.2 关闭文件

#打开文件
f = open('E:\Python Code\\1.txt', 'r')

#关闭文件
f.close()

#查看文件是否关闭
print(f.closed)

image-20230918211553243

1.1.3 访问模式

访问模式 操作 说明
r (read) 以读方式打开 默认打开文件的方式 文件不存在则报错。
w (write) 以写方式打开 文件存在则清空,不存在则创建。
a (add) 以追加模式打开 不存在则创建。
存在则追加
+ 以读写模式打开 如r+,w+,a+。
b 以二进制模式打开 如rb,wb,ab。

常用打开文件的参数:

r
w
a
rb
wb
ab
f = open("./pass.dic", "r")
print(f.closed)  #False
f.close()
f = open("./pass.dic", "W")
f.close()

说明:

open(“./pass.dic”, “r”) :表示已读的方式打开

f.closed :表示查看文件是否关闭

f.close() :表示关闭文件

open(“./pass.dic”, “W”) :表示以写的方式打开,写完以后记得关闭文件。

1.2文件读取

1.2.1 read()

read() 方法用来读取文件内容。

f = open("E:\Python Code\\1.txt",'r')
data=f.read()
print(data)

read() 方法有点莽,读取文件中所有内容,此方法慎用。

read() 方法比较适合读取二进制文件,包括exe 程序,图片等文件,不适合读取纯文本文件。

\n 表示换行(也可以\n\r)

Python 文件的读写操作_第1张图片

1.2.2 readline()

读取打开文件的一行(读取下个行结束符之前的所有字节),包括行结束符,作为字符串返回。它也有一个可选的size 参数,默认为-1,代表读至行结束符,如果提供了该参数,那么在超过size 个字节后会返回不完整的行。

该函数每执行一次,向下读取一行。

f = open("E:\Python Code\\1.txt",'r')
print(f.readline()) #输出第一行,此时文件指针指向第二行开头
print(f.readline())

Python 文件的读写操作_第2张图片

除去中间的空行,使用strip函数,默认去除头尾的空格或者换行符:

f = open("E:\Python Code\\1.txt",'r')
print((f.readline()).strip()) 
print((f.readline()).strip())

image-20230918212838803

1.2.3 readlines()

readlines() 方法读取所有(剩余的)行,然后把它们作为一个元素是字符串的列表返回。

f = open("E:\Python Code\\1.txt",'r')
print(f.readlines()) #从头开始,返回一个字符串列表
print("---------------------") #为了直观一点
print(f.readline()) #因为文件指针已经指向了文件末尾,所以会输出空
print("---------------------") #为了直观一点
f.seek(0,0) #此时就需要使用seek函数来重新设置文件读取指针的位置
print(f.readline()) #再次输出
f.close()

说明:

seek(0,0) 重新设置文件读取指针到开头

Python 文件的读写操作_第3张图片

1.3 文件迭代

如果需要逐行处理文件,可以结合for 循环迭代(遍历)文件。迭代文件的方法与处理其他序列类型的数据类似。

# 12 - 文件迭代

f = open(file = "E:\Python Code\\1.txt", mode = "r")

for i in f:  # f 也可换成 f.readlines()
    print(i.strip())

f.close()

Python 文件的读写操作_第4张图片

有可能遇到的问题:

  • 在编程时,f.close() 方法容易忘记写。
  • 在处理文件时,有可能会遇到异常,导致整个脚本强制退出,f.close() 不会被执行到。
# 13 - 文件迭代的改进方法.py

with open(file = "E:\Python Code\\1.txt", mode = "r") as f:
    for line in f:
        print(line.strip())

使用该关键字可以让python去确定,我们在不需要访问文件的时候自动关闭文件。也就是说我们只需要打开和操纵文件,python会在合适的机会关闭文件。即使在文件打开过程中,遇到异常无法关闭文件的情况下,也能自动关闭文件。

Python 文件的读写操作_第5张图片

1.4 文件输入

1.4.1 write()

write() 内建方法功能与read() 和readline() 相反。它把含有文本数据或二进制数据块的字符串写入到文件中去。写入文件时,不会自动添加行结束标志,需要程序员手工输入。

f = open('E:\Python Code\\1.txt', 'a') #打开文件方式为追加
f.write('g_h_i\n') #追加写入
f.close() #关闭

f = open('E:\Python Code\\1.txt', 'a')
f.write("zhangsan\n")
f.close()

f = open('E:\Python Code\\1.txt', 'r') #打开文件方式为读取
print(f.readlines()) #以文件列表的形式输出
f.close()

image-20230918221657036

1.4.2 writelines()

和readlines() 一样,writelines() 方法是针对列表的操作,它接受一个字符串列表作为参数,将它们写入文件,行结束符并不会被自动加入,所以如果需要的话,必须在调用writelines() 前给每行结尾加上行结束符。

>>> password_list=
['venustech\n', 'nsfocus\n', 'topsec\n', 'dbappsecrutiy\n', 'knownsec\n', 'colasoft\n', 'sangfor\n', 'qianxin\n', 'chaitin\n', 'sbr-info\n']
>>> f = open('sec.dic', 'a')
>>> f.writelines(password_list)
>>> f.close()
adlines()) #以文件列表的形式输出
f.close()

你可能感兴趣的:(python,java,服务器,运维)