天天看点

[再学Python] - 7 - 文件编码(了解即可)文件操作

文件是有序的数据序列。

编码(了解即可)

ASCII码

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

ASCII码和字符的转换

ord('A')

:字符 -> ASCII码

chr('65')

:ASCII码 -> 字符

Unicode

跨语言、跨平台

统一且唯一的二进制编码

每个字符两个字节长

65536个字符的编码空间

UTF-8编码

可变长度的Unicode

[再学Python] - 7 - 文件编码(了解即可)文件操作

文件操作

打开文件

open()

函数,语法格式如下

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

<variable>

其实是一个指针

<name>

为文件名

<mode>

为打开模式

[再学Python] - 7 - 文件编码(了解即可)文件操作

举例:

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] - 7 - 文件编码(了解即可)文件操作

print(line[:-1])

为去掉读取文件中多加的换行符。

文件写入

文件读取的函数:

  • write()

    :把含有文本数据或二进制数据块的字符串写入到文件中。
  • writelines()

    :针对列表操作,接受一个字符串列表作为参数,将他们写入文件,且行结束符不会被自动加入。
    [再学Python] - 7 - 文件编码(了解即可)文件操作

遍历文件模板

通用代码框架
file = open("filename", "r")
for line in file.readlines():
	# 处理一行文件内容
file.close
           
简化代码框架(常用)
file = open("filename", "r")
for line in file:
	# 处理一行文件内容
file.close()
           

示例1:拷贝文件

[再学Python] - 7 - 文件编码(了解即可)文件操作

示例2:读取文件

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

[再学Python] - 7 - 文件编码(了解即可)文件操作

读取文件的代码如下

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] - 7 - 文件编码(了解即可)文件操作