文件是有序的数据序列。
编码(了解即可)
ASCII码
七个二进制位编码,表示128个字符。
ASCII码和字符的转换
ord('A')
:字符 -> ASCII码
chr('65')
:ASCII码 -> 字符
Unicode
跨语言、跨平台
统一且唯一的二进制编码
每个字符两个字节长
65536个字符的编码空间
UTF-8编码
可变长度的Unicode
文件操作
打开文件
open()
函数,语法格式如下
<variable> = open(<name>, <mode>)
<variable>
其实是一个指针
<name>
为文件名
<mode>
为打开模式
举例:
1.打开一个名为“numbers.dat”的文本文件(ASCII文件)
>>>infile = open("numbers.dat", "r")
2.打开一个名为“music.mp3”的音频文件(为二进制文件)
>>>infile = open("music.mp3", "rb")
文件操作
文件读取
文件读取的函数:
-
:返回值为包含整个文件内容的一个字符串read()
string
-
:返回值为文件下一行内容的字符串readline()
string
- readlines():返回值为整个文件内容的列表
,每项是以换行符为结尾的一行字符串list
。string
print(line[:-1])
为去掉读取文件中多加的换行符。
文件写入
文件读取的函数:
-
:把含有文本数据或二进制数据块的字符串写入到文件中。write()
-
:针对列表操作,接受一个字符串列表作为参数,将他们写入文件,且行结束符不会被自动加入。writelines()
遍历文件模板
通用代码框架
file = open("filename", "r")
for line in file.readlines():
# 处理一行文件内容
file.close
简化代码框架(常用)
file = open("filename", "r")
for line in file:
# 处理一行文件内容
file.close()
示例1:拷贝文件
示例2:读取文件
待读取文件以“,”分隔,具体如下图:
读取文件的代码如下
result=[]
file = open("data.txt", "r")
for line in file:
result.append(list(map(float,line.split(','))))
print(result)
首先我们将
result
定义为一个空
list
。
在读取的过程中,先通过
line.split(',')
对每一行通过"
,
"分割。
然后用
map(float,line.split(','))
将分割后的元素转为
float
类型。
之后通过
list(map(float,line.split(',')))
将其转为
list
。
再通过
.append()
附加到
result
上。
示例3:多文件操作