python文件操作

原因

在爬虫的使用过程中,我们不可避免的需要新建文件写入我们爬取过来的数据,所以,我们非常有必要再对python文件操作的方法进行一个整理和归纳。

文件打开与关闭

首先要说明的是,打开文件可以用相对路径,也可以用绝对路径,两种方法,open,with open,我要操作的是当前目录下的一个文件test.txt,
在这里插入图片描述

open

我们可以用open来打开文件,用open方法打开文件,必须后面用close方法来关闭文件,来表示当前文件操作已经完成,另外,如果要用特定的编码来读写文件,则要在open的括号内写上encoding编码方式。

file = open("test.txt","r",encoding="utf-8")  #打开文件
content = file.read() # 读文件
print(content)
file.close() # 关闭文件

在这里插入图片描述

with open

with open比open好的一点就是,不需要我们自己close文件,他会自动关闭文件。with open必须要为打开的文件起一个别名。

with open("test.txt","r",encoding="utf-8")as file: #打开文件
    content = file.read() #读取文件
    print(content) 

在这里插入图片描述

目录操作

首先需要导入os模块

imopot os

mkdir

os.mkdir() 创建一个目录,可以是相对或者绝对路径,他的特点是:如果创建的多级目录中,有一个目录的父目录不存在,就会报错,所以,os.mkdir只会创建最后一个目录文件

os.mkdir("fruit/apple")

这个目录创建成功的前提是,fruit目录已经存在,且apple不存在。

makedirs

os.makedirs() 创建递归的目录树,可以是相对或者绝对路径
它比os.makedirs 好的一点是:如果创建多级目录时,有个父目录不存在,它也会一并建起。

os.makedirs("fruit/apple")

这个目录创建成功的前提是,apple不存在。

判断目录存在

上面两个方法创建成功的前提都是他们的尾目录一定是不存在的,如果apple目录已经存在,就会报错,所以我们要在创建之前判断目录是否已经存在。

import os


if not os.path.exists("fruit/apple"):
    os.makedirs("fruit/apple")

文件读写添加操作

这里先用一个表来列出文件打开的方式:

访问方式说明
r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
r+打开一个文件用于读写。文件指针将会放在文件的开头。
w打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

r只读,r+读写,不创建
w新建只写,w+新建读写,二者都会将文件内容清零(新文件覆盖旧文件)
a:附加写方式打开,不可读;a+: 附加读写方式打开

文件操作

read

read方法读取文件所有内容

file = open("test.txt","r",encoding="utf-8")
content = file.read()
print(content)
file.close()

在这里插入图片描述

readline

readline方法读取指针所在的行,并将指针移向下一行

file = open("test.txt","r",encoding="utf-8")
content = file.readline()
content2 = file.readline()
print(content,content2)
file.close()

在这里插入图片描述

readlines

readlines方法读取整个文件所有行,保存在一个列表中,每行包括行尾的换行符作为一个元素。

file = open("test.txt","r",encoding="utf-8")
content = file.readlines()
print(content)
file.close()

在这里插入图片描述

write方法:

file = open("test.txt","w",encoding="utf-8")
file.write("中国人民万岁") #写
file.close()
file2 = open("test.txt","r",encoding="utf-8")
content=file2.read()
print(content)
file2.close()

在这里插入图片描述

追加

以a或a+方式打开文件,然后用wirte方法写入内容
file = open("test.txt",'a',encoding="utf-8")
file.write("成都昆明重庆发展好呀")
file.close()
file2 = open("test.txt","r",encoding="utf-8")
content=file2.read()
print(content)
file2.close()

在这里插入图片描述

删除文件

os.remove
例如,找到并删除当前目录里所有.pyc文件

import os
del_paths = [name for name in os.listdir('.') if name.endswith('.pyc')]
for del_path in del_paths:
    os.remove(del_path)
print(os.listdir('.'))
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值