0%

Python基础之文件的读写

数据处理可谓是Python最擅长的工作之一。那对于我们需要处理的大量数据,手动输入代码中是极其不科学的,故我们需要学会对文件进行读写操作,下面跟着小沈一起来探索吧!

文件的打开

  • <变量名> = open(<文件名>,<打开模式>)

    image-20221027123041800

  • 打开模式

    | 文件的打开模式 | 描述 |
    | ——————— | ———————————————————————————- |
    | ‘r’ | 只读模式,默认值,如果文件不存在,返回FileNotFoundError |
    | ‘w’ | 覆盖写模式,文件不存在则创建,存在则完全覆盖 |
    | ‘x’ | 创建写模式,文件不存在则创建,存在则返回FileExistsError |
    | ‘a’ | 追加写模式,文件不存在则创建,存在则在文件最后追加内容 |
    | ‘b’ | 二进制文本模式 |
    | ‘t’ | 文本文件模式,默认值 |
    | ‘+’ | 与r/w/x/a一同使用,在原功能基础上增加同时读写功能 |


文件内容的获取

操作方法 描述
f.read(size=-1) 读入全部内容,如果给出参数,读入前size长度
f.readline(size=-1) 读入一行内容,如果给出参数,读入该行前size长度
f.readlines(hint=-1) 读入文件所有行,以每行为元素形成列表,如果给出参数,读入前hint行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#逐行遍历文件
#方法一:
fname=input("请输入要打开的文件名称:")
fo=open(fname,"r")
for line in fo.readlines():
print(line)
fo.close()

#方法二
fname=input("请输入要打开的文件名称:")
fo=open(fname,"r")
for line in fo:
print(line)
fo.close()

数据的文件写入

操作方法 描述
f.write(s) 向文件写入一个字符串或字节流
f.writelines(lines) 将一个元素全为字符串的列表写入文件
f.seek(offset) 改变当前文件操作指针的位置,offset=0(代表回到文件开头),offset=1(代表当前位置),offset=2(代表回到文件结尾)
1
2
3
4
5
6
7
8
fo = open("output.txt","w+")
ls=["努力是成功的别名","每一次成长","都是一次经历"]
fo.writelines(ls)
#fo.writelines('\n'.join(ls)) 可以加上这一句实现分行写入
fo.seek(0)#必须要改变文件操作指针的位置,不然写完元素之后指针到了文章最后,会导致写下来读不出内容
for line in fo:
print(line) #由结果可以注意到实际上writelines不是一行行写入的,是连着写入的
fo.close()

结果如下:

image-20221027140238501


文件的关闭

  • <变量名>.close()#使用完文件后一定要记得关闭文件
欢迎来到ssy的世界