目录
一、编码格式
- python的解释器,使用的是Unicode(内存),如运行时的变量值“王五”是Unicode;
- .py文件,在磁盘上使用UTF-8存储(外存);
.py文件,默认存储的格式是UTF-8;
修改.py文件的编码格式为ANSI
在.py文件第一行,添加如下代码:存储的文件的编码格式变为ANSI;
不同的编码格式,占用的磁盘空间大小是不同的;“中国”两个汉字,ANSI编码格式占用4个字节,UTF-8编码格式占用9个字节;
#encoding=gbk
二、文件操作
1、文件的读写原理
- 文件的读写,俗称“IO操作”;
IO操作:数据通过管道流向程序,或者数据通过管道从程序流向磁盘;input和output
文件的读写操作流程
解释器运行.py文件,会调用os操作系统资源,去操作磁盘中的文件,进行读和写的操作;
操作原理
2、文件的读写操作
- 内置函数open()创建文件对象;
- 通过IO流,将磁盘文件中的内容与程序中的对象中的内容进行同步;
语法:
file = open( filename, [,mode,encoding] )
1)读操作,读取磁盘内容
file.read(),读取文件全部内容,返回类型为<class 'str'>
# 文件的读写操作
file = open('a.txt', 'r', encoding='utf-8') # 读操作,读取磁盘内容
print(file.read())
file.close()
输出结果:
中国
魅力
强大
# 读操作,读取磁盘内容
file = open('a.txt', 'r', encoding='utf-8')
print(file.read(2))
file.close()
输出结果:
中
file.readline() 读取文件一行内容,返回类型为<class 'str'>
file = open('a.txt', 'r', encoding='utf-8') # 读操作,读取磁盘内容
# print(file.read())
print(file.readline())
# print(file.readlines())
file.close()
输出结果:
中国
file.readlines(),读取文件全部内容,每一行为列表的一个元素,并且带格式符号,返回类型为<class 'list'>
file = open('a.txt', 'r', encoding='utf-8') # 读操作,读取磁盘内容
# print(file.read())
# print(file.readline())
print(file.readlines())
file.close()
输出结果:
['\ufeff中国\n', '魅力\n', '强大\n']
python按行读取文件 去掉换行符"\n"
# 按行读取文件,去掉换行符"\n"
file_path = 'input_project_name.txt'
# 读取磁盘内容
with open(file_path, 'r', encoding='utf-8') as fp:
# 按行读取全部内容,每一行为列表中的一个元素
content = fp.readlines() # 元素中包含\n换行符,['汇航旅\n', '大项目需求-凯德\n', '新产品需求-汇缴费\n']
# 列表中每个元素,去掉换行符"\n"
for line in content:
line_index = content.index(line)
content[line_index] = line.strip('\n')
print(content)
输出结果:
['汇航旅', '大项目需求-凯德', '新产品需求-汇缴费']
2)常用的文件打开模式
文件的类型
- 文本文件,存储的是普通"字符"文本,默认为Unicode字符集,可使用记事本打开;
- 二进制文件,数据内容用"字节"存储,无法用记事本打开,必须使用专业软件打开,如mp3,.jpg,.doc文档等;
打开模式:
打开模式 | 描述 |
r | 只读模式打开文件,文件的指针会放在文件的开头; |
w | 只写模式打开文件,如果文件不存在则创建;如果文件存在,则覆盖原有内容;文件指针在文件的开头; |
a | 追加模式打开文件,如果文件不存在则创建;如果文件存在,则在文件末尾追加内容;文件指针在原文件的末尾; |
b |
以二进制方式打开文件,不能单独使用,需要与其他模式一起使用,如rb或wb |
+ | 以读写方式打开文 |