python中的文件操作

文章讲述了类Unix系统和Windows系统中根目录的不同表示,以及绝对路径和相对路径的使用。在Python中,使用`open()`函数进行文件读写,包括读取模式、写入模式,以及如何通过`read()`,`readline()`,`readlines()`进行文件内容的分块读取。同时强调了文件操作后关闭文件的重要性。
摘要由CSDN通过智能技术生成

 类unit操作系统的根结点一般用“\”表示,一切的文件和目录都在根目录下面

Windows操作系统不同,每个磁盘分区都有一个根目录,用分区名加上反斜杠表示

虽然这两种方法不一样,但表示路径的时候都是以下两种方法:绝对路径、相对路径

以下为类unix系统与Windows系统绝对路径的表示:

 相对路径:

用相对路径时,用“.”表示参照文件当前所在的目录,“..”表示更上一层的父目录,再上一层的话依然用".."并跟上斜杠或反斜杠进行分隔

“./”是可以省略的,所以同一目录下的文件想相互用相对路径找到彼此的话可以直接使用文件名

 打开操作

f = open("./data/txt", "r", encoding = "utf-8")
print(f.read()) #会读全部的文件内容,并打印
print(f.read()) #会读空字符串,并打印

 第一个参数可以填绝对路径或者相对路径,第二个参数表示模式,常见的有:
"r" - 读取模式(只读)

"w" - 写入模式(只写)

第二个参数也可以不填,默认为只读模式

还有第三个可选的参数叫做“encoding”,表示编码方式

 第二次read的时候读出来空字符串是因为第一次读完之后会记录读取的位置,而第一次read已经读到结尾,第二次后面就没有内容了,因此返回空字符串

在文件体积很大的时候最好不要用read,因为读出来的内容会占用很大内存,甚至把内存给爆了

如果不想一次性读完文件,可以给read传一个数字,表示读多少字节

f = open("./data/txt", "r", encoding = "utf-8")
print(f.read(10)) # 读1 - 10字节的内容,并打印
print(f.read(10)) # 读11- 20字节的内容,并打印
print(f.readline()) # 会读一行文件内容,并打印

readline()会根据换行符判断一行,到最后一行的时候继续读取会返回空字符串

因此readline()常用while循环

f = open("./data/txt", "r", encoding = "utf-8")
line = f.readline()
while line != "":
    print(line)
    line = f.readline()

 或者

f = open("./data/txt", "r", encoding = "utf-8")
# readlines会读全部文件内容,并把每行作为列表元素返回
print(f.readlines())

for a in lines:
    print(a)
f.close()

 之后会输出以下结果:

['白日依山尽\n', '黄河入海流\n', '欲穷千里目\n', '更上一层楼']
白日依山尽

黄河入海流

欲穷千里目

更上一层楼

操作完记得加上f.close()关闭文件,释放资源

如果怕忘记关闭文件操作,可以换个写法:

with open("./data.txt") as f: # f为open操作的返回值
    print(f.read())

写操作:

with open("./poem.txt","w",encoding = "utf - 8") as f:
    f.write("我欲乘风归去\n")
    f.write("又恐琼楼玉宇\n")
    f.write("高处不胜寒\n")

 或者

with open("./poem.txt","w",encoding = "utf - 8") as f:
    f.write("我欲乘风归去\n又恐琼楼玉宇\n高处不胜寒\n")

 想要在文件后面再加几句,不能再用“w”模式,因为新增的内容在这个模式下面会直接覆盖文件原本的内容,因此要用“a”模式

with open("./poem.txt","w",encoding = "utf - 8") as f:
    f.write("起舞弄清影\n")
    f.write("何似在人间\n")

——————————————————

视频学习笔记,视频源地址:
【01-理论课】快速易懂Python入门_哔哩哔哩_bilibili

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值