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的世界