当前位置:   article > 正文

Python 文件的读写操作_python 本地文件读写

python 本地文件读写

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))
  • 1
  • 2
  • 3
  • 4
  • 5

image-20230918211345593

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

#关闭文件
f.close()

#查看文件是否关闭
print(f.closed)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
'
运行

image-20230918211553243

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

常用打开文件的参数:

r
w
a
rb
wb
ab
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
f = open("./pass.dic", "r")
print(f.closed)  #False
f.close()
f = open("./pass.dic", "W")
f.close()
  • 1
  • 2
  • 3
  • 4
  • 5

说明:

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)
  • 1
  • 2
  • 3
'
运行

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

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

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

image-20230918212232629

1.2.2 readline()

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

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

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

image-20230918212608300

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

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

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
'
运行

说明:

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

image-20230918215052206

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
'
运行

image-20230918215501918

有可能遇到的问题:

  • 在编程时,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())
  • 1
  • 2
  • 3
  • 4
  • 5
'
运行

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

image-20230918215840240

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
'
运行

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/820446?site
推荐阅读
相关标签
  

闽ICP备14008679号