为什么学习这章,大家都很清楚Python最擅长的2个大块 1;爬虫技术 2;数据分析。不论是哪块都要涉及到文件的存储。
打开文件的方法(这里只写常用的):
打开模式 |
执行操作 |
'r' |
以只读的方式打开文件 |
'w' |
以写入的方式打开文件,会覆盖已存在的文件,如果打开的文件不存在则新建一个 |
'a' |
以写入的模式打开,如果文件存在,则在原内容后面添加新内容 |
'r ' |
即可以写入, 也可以读取。 |
打开文件的函数是:open
我们在之前学过函数了,那么来看下open,这个函数的定义,
通过help(open):
open(file, mode='r',
buffering=-1, encoding=None, errors=None, newline=None, closefd=True,
opener=None)
这个函数有8个形参,1个关键字函数,7个默认函数。
第一个:file :需要输入文件的地址(这个地址就是文件在电脑的位置,最快的办法是把文件直接拖入终端,或者右键点击文件查看路径)。
第二个:mode = 'r' ,如果不输入则默认以“只读”模式打开文件,如果以写入的方式则修改默认参数;mode='w'.
其他的默认函数大家可以自行去查哈。
open函数的一些方法:
0:判断这个文件能否读取,能否写入: a.readable, a.writable
a=open("/Users/xuxizhi/Desktop/xinjian.docx",'r ')
# 判断文件能否读取
print(a.readable())
# 判断文件能否写入
print(a.writable())
1;read 读取文件的内容, 2;read(10)读取文件前8个字符 3;close()关闭文件
# 打开一个已知的桌面文件
a=open('/Users/xuxizhi/Desktop/python测试文档.txt')
# 读取文件里的内容
print(a.read())
# 读取文件里前8个字符
print(a.read(8))
# 关闭文件
a.close()
2: 文本内容转化为列表
# 打开一个已知的桌面文件
a=open('/Users/xuxizhi/Desktop/python测试文档.txt')
#将文件内容转化为列表
print(list(a))
# 转化为列表之后 可以通过遍历,可以一行,一行打印来看
for i in a:
print(i)
3;文件的写入
# 对文件进行写入,如果文件不存在就会自动生成一个
# 写入文件 要记得 1;用'w' 2:用write 3;记得关闭close
a=open('/Users/xuxizhi/Desktop/python测试文档1.txt','w')
a.write('现在我们进行新建文本的创建:学习Python到现在,兴趣不减这个点我还是很兴奋的,之后的路准备走爬虫或数据分析。')
a.close()
如何以字典的方式写入CSV文件,csv文件类似于ex表,但比ex表小的多。
# csv文件的写入
# csv文件比execl文件小的多,需要用到模块
import csv
# 要写入的内容以字典形式表示
d1=dict(zip(['姓名','年龄','性别'],['张三',27,'男']))
d2=dict(zip(['姓名','年龄','性别'],['李四',22,'男']))
d3=dict(zip(['姓名','年龄','性别'],['刘梅',22,'女']))
d4=dict(zip(['姓名','年龄','性别'],['唐三藏',33,'男']))
d5=dict(zip(['姓名','年龄','性别'],['孙悟空',30,'男']))
d6=dict(zip(['姓名','年龄','性别'],['白骨精',26,'女']))
# 设置文件的表头
biaotou=[i for i in d1]
# 设置好文件地址:
dizhi='/Users/xuxizhi/Desktop/python测试文档.csv'
# 以自动关闭的方式打开,目的写入
with open(dizhi,'w',encoding='utf-8')as a:
# 字典类的实例化
b = csv.DictWriter(a,fieldnames=biaotou)
# 写入表头
b.writeheader()
# 写入内容
b.writerows([d1,d2,d3,d4,d5,d6])
写入后如何直接在Python里读取呢?
# 如何读取csv里的文件?
import csv
dizhi='/Users/xuxizhi/Desktop/python测试文档.csv'
with open(dizhi,'r',encoding='utf-8')as f:
# 以字典的方式展示列表里的内容
b=csv.DictReader(f)
# 通过遍历展现出来
for i in b:
print(i)
如何使用os函数读取电脑文件夹里的所有文件名?
# 如何读取csv里的文件?
import os
# 文件夹地址
wenjianjia_dizhi='/Users/xuxizhi/Desktop/ceshi/'
# 通过os函数找到文件夹里所有的文件名
wenjian_mc=os.listdir(wenjianjia_dizhi)
# 通过文件夹 文件名得出所有文件的地址
for i in wenjian_mc:
wenjian_dizhi=wenjianjia_dizhi i
print(wenjian_dizhi)
,