python_day6 【文件】

一、文件

文本类型:文本文件 (.txt文件)和 二进制文件(视频、图片)

操作文件: 打开-操作-关闭
操作:读写删改
1、打开 open()
变量名 = open(文件路径及文件名,模式)
【注意!!!!路径中 \ 是转义符,所以表示路径时,使用 \ 或者 /】

2、关闭 变量名.close()
文件使用结束一定要关闭,释放文件的使用授权

3、模式

模式描述
r只读模式 若文件不存在,返回异常FileNotFoundError
w覆盖写模式 若文件不存在则创建,存在则完全覆盖源文件
x创建写模式 若文件不存在则创建,存在则返回异常FileExistsError
a追加写模式 若文件不存在则创建,存在在原文件中最后位置追加内容
b二进制文件模式
t文本文件模式,默认值
+与r/w/x/a一同使用,在原功能基础上增加读写功能

r w x a 与 b t +组合使用

【r】

a = open('D:\\test.txt','r')
print(a.readline())
a.close()

test.txt

输出结果为:
hello,python

【文件不存在时】

FileNotFoundError: [Errno 2] No such file or directory: 'D:\\test1.t

4、操作
【读】
a.read()读取整个文件的内容
a.readline()读取文件的一行
a.readlines()读取所有行,每行为一个元素的形式的列表

当有两个同时运行时,发现结果并不是如预料所显示

a = open('D:\\test.txt','r+')
print(a.read())
print(a.readline())
a.close()
输出结果为:
努力学习!!!
天天向上!!!

【分析】
因为读取文件时有个读取指针,在a.read()读取结束后,读取指针指向的是文件内容的最后面,所以在a.readline()再被运行时,读取指针再往后走,但是后面并没有内容了,所以返回空。此时就引出了seek()操作
【a.seek(offset)】改变当前文件操作指针的位置
offset = 0 指向文件开头
offset = 2 指向文件结尾

a = open('D:\\test.txt','r+')
print(a.read())
a.seek(0)
print(a.readline())
# print(a.readlines())
a.close()
输出结果为:
努力学习!!!
天天向上!!!
努力学习!!!

【写】
a.write(s)
a.writelines(列表名):将列表中的各元素连接起来写入文件中

a = open('D:\\test1.txt','w')
a.write("别看我只是一只羊\n")
a.write("羊儿的聪明难以想象")
a.close()

运行后打开test1.txt查看
在这里插入图片描述

a = open('D:\\test2.txt','w')
asd = [
"别看我只是一只羊\n",
"绿草因为我变得更香\n",
"天空因为我变得更蓝\n",
"白云因为我变得柔软\n",
"别看我只是一只羊\n",
"羊儿的聪明难以想象\n",
"天再高心情,一样奔放\n",
"每天都追赶太阳"
]
a.writelines(asd)
a.close()

运行后打开test2.txt查看
在这里插入图片描述
二、数据的维度
一维数据:采用线性方式组织——数组
采用列表形式表示
常见的存储方式
空格分隔[1 2 3 4]
逗号分割[1,2,3,4]
换行分割
[1
2
3
4]
其他特殊符号分割[1:2:3:4]

二维数据: 表格数据,采用二维表格方式组织——矩阵

高维数据: 键值对类型,采用对象方式组织,可以多层嵌套

【用csv文件存储】
一维:
【写入】

a = ['长沙','武汉','深圳','杭州']
f = open('D:\\city.csv','w')
f.write(",".join(a))
f.close()

在相应地址可以找到city.csv,打开可以看到
在这里插入图片描述
【读出】

f = open('D:\\city.csv','r')
a = f.read()
b = a.split(',')
f.close()
print(b)
print(type(b))
输出结果为:
['长沙', '武汉', '深圳', '杭州']
<class 'list'>

⭐⭐⭐
join() 方法用于将序列中的元素以指定的字符链接生成一个新的字符串
split() 通过指定分隔符对字符串进行切片,返回列表

二维:
【写入】

a = [['城市','cpi'],
     ['长沙',"123"],
     ['武汉',"234"],
     ['深圳',"345"],
     ['杭州',"564"],]
f = open('D:\\cpi.csv','w')
for row in a:
    f.write(",".join(row)+'\n')
f.close()

在这里插入图片描述
【读出】

f = open('D:\\cpi.csv','r')
a = []#a为空列表,用来存储从文件中读出的数据
for i in f:
    a.append(i.strip('\n').split(','))
f.close()
print(a)
输出结果为:
[['城市', 'cpi'], ['长沙', '123'], ['武汉', '234'], ['深圳', '345'], ['杭州', '564']]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值