文章目录
文件
概念上,文件是数据的集合和抽象
- 文本文件:一般由单一的特定编码字符组成
- 二进制文件:0,1组成
- 二进制和文本文件最主要的区别在于是否有统一字符编码
文件的读入
- 采用 “rt” 文本方式读入文件,文件经编码形成字符串
- 采用 “rb” 二进制方式打开文件,文件被解析为字节流
文件的打开模式
f.read( )
若文件不大,可以一次性将文件内容读入保存到内部变量中,结果是一个字符串
f = open("b.txt", 'r', encoding="UTF-8")
s = f.read()
print(s)
f.close()
我是小杨我就这样
f.readlines( )
一次性读入文件的函数,其结果是一个列表,每个元素是文件的一行
f = open("b.txt", 'r', encoding="UTF-8")
s = f.readlines()
print(s)
f.close()
[‘我是小杨我就这样\n’]
文件读取的指针
文件打开后,对文件的读写有一个读取指针,当从文件中读入内容后,读取指针将向前进,再次读取的内容将从新的位置开始
f = open("b.txt", 'r', encoding="UTF-8")
s = f.read()
print(s)
我是小杨我就这样
ls = f.readlines()
print(ls)
# 因为之前的f.read()已经读取了文件全部内容,读取指针在文件末尾
[ ]
f.seek( )移动指针位置
- f.seek(0):将读取指针移动到文件开头
- f.seek(2):将读取指针移动到文件末尾
f = open("b.txt", 'r', encoding="UTF-8")
s = f.read()
print(s) # 我是小杨我就这样
ls = f.readlines()
print(ls) # []
# 因为之前的f.read()已经读取了文件全部内容,读取指针在文件末尾
f.seek(0)
ls = f.readlines()
print(ls)
[‘我是小杨我就这样\n’]
文件逐行读入
f = open('b.txt', 'r', encoding="UTF-8")
for line in f:
print(line)
f.close()
新年都未有芳华,二月初惊见草芽。
白雪却嫌春色晚,故穿庭树作飞花
文件的写入
f.write( )
向文件写入一个字符串或者字节流
f = open('b.txt', 'w')
f.write('我是小杨我就这样\n')
f.close()
f.writelines(lines)
直接将列表类型的各元素连接起来写入文件 f
ls = ['我是小杨我就这样\n', '啦啦啦阿联\n']
f = open('b.txt', 'w')
f.writelines(ls)
f.close()
数据组织的维度
一维数据
二维数据
高维数据
CSV格式文件
以逗号分割数据的文件
一维数据的处理
ls = ['北京', '上海', '天津', '重庆']
f = open("city.csv", 'w')
f.write(",".join(ls) + '\n')
f = open("city.csv", 'r')
s = f.read()
print(s)
f.close
北京,上海,天津,重庆
二维数据的处理
循环的方式写入
ls = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
f = open("b.csv", 'w')
for row in ls:
f.write(",".join(ls)+'\n')
f.close()