Python之IO

对文件的操作是一件很重要的事。因为许多数据都存储在文件或者数据库中,而不能全部都在脚本中操作。这里的I/O指的是输入流(Input Stream)和输出流(Output Stream)。

文件读取

首先我们先写一个txt文件,在这里,我在这个txt文件中添加了一些单词,并命名为“words1.txt”,然后对其进行操作。

f = open("words1.txt","r")
print(f.read())

运行的结果如下:
这里写图片描述
就这样就可以吧文件内容读取出来了。但是此时文件内容是被读取到了内存中。不信的话可以尝试保持这个界面,然后去右键删除文档。这时候会出来一个弹窗:
这里写图片描述
这样是无法删除文件的。所以在我们不需要使用这个文件时,为了避免占用电脑资源,要调用f.close() 函数将文件关闭并释放资源。
但是有时候文件操作会产生异常。在Java中,我们会采用try……catch……(finally……) 的形式。在Python中,也是采用类似的形式。

try:
    f = open("words1.txt","r")
    print(f.read())
finally:
    if f:
    f.close()

当然,为了体现Python的简洁性,也是有两句话搞定的:

with open("words1.txt","r") as file:
    print(file.read())

read()&readline()&readlines()

来比较一下这三个函数,理论不说那么多,直接上代码感受一下吧。

  • read()

首先是read()

with open("words1.txt","r") as file:
    print(file.read())

打印出来的效果如图:
这里写图片描述
这个在上面已经实验过了。

  • readline()
with open("words1.txt","r") as file:
    print(file.readline())

运行结果图:
这里写图片描述
readline()顾名思义就是读取一行,所以也很简单啦。

  • readlines()
    readline() 相似,readlines() 是也是以行来读取数据的,然而前者只读取一行,而后者读取全部的行。
with open("words1.txt","r") as file:
    print(file.readlines())

这里写图片描述
如果要读取比较大的文件,也可以用这个函数:

with open("words1.txt","r") as file:
    for line in file.readlines():
        print(line.strip())

运行结果如图:
这里写图片描述
其中,这个strip() 函数可以用来删除你想删除的字符,将这些字符当参数传入即可。如果strip()的参数为空,那么会默认删除字符串头和尾的空白字符(包括\n,\r,\t这些)。

文件写入

与读取类似,先要用open() 打开,但是在表示符那里要用"w","w+","wb" 等模式。

f = open("words1.txt","w")
f.write("hey yoyo")
f.close()

这里一定要用f.close() 。因为调用了write() 函数仅是把内容写进内存,直到对文件执行关闭后,才真正写入文件。为了避免异常,可以采用上述的方式:

with open("words1.txt","w") as file:
    file.write("finished!")

这样,以前的数据都会被清空而传入了新数据,所以大家可以新建一个文件来实验。如果原本没有这个文件,调用了open() 这个函数之后,会自动生成一个。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值