文件是有序的数据序列。

编码(了解即可)

ASCII码

七个二进制位编码,表示128个字符。

ASCII码和字符的转换
ord('A') :字符 -> ASCII码
chr('65') :ASCII码 -> 字符

Unicode

跨语言、跨平台
统一且唯一的二进制编码
每个字符两个字节长
65536个字符的编码空间

UTF-8编码

可变长度的Unicode

python 读 ascii python读ascii码文件_读取文件

文件操作

打开文件

open() 函数,语法格式如下

<variable> = open(<name>, <mode>)

<variable> 其实是一个指针

<name> 为文件名

<mode> 为打开模式

python 读 ascii python读ascii码文件_字符串_02


举例:

1.打开一个名为“numbers.dat”的文本文件(ASCII文件)

>>>infile = open("numbers.dat", "r")

2.打开一个名为“music.mp3”的音频文件(为二进制文件)

>>>infile = open("music.mp3", "rb")

文件操作

文件读取

文件读取的函数:

  • read() 返回值 为包含 整个文件内容 一个字符串 string readline() 返回值 为文件 下一行内容 字符串 string
  • readlines(): 返回值 整个文件内容 列表 list ,每项是 以换行符为结尾 一行字符串 string

python 读 ascii python读ascii码文件_python 读 ascii_03


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:拷贝文件

python 读 ascii python读ascii码文件_python_04


示例2:读取文件

待读取文件以“,”分隔,具体如下图:

python 读 ascii python读ascii码文件_python 读 ascii_05


读取文件的代码如下

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:多文件操作

python 读 ascii python读ascii码文件_python 读 ascii_06