一、文件
1.文件的介绍
文件是存储在计算机中的信息集合,通常以特定格式保存。文件可以是文本、图像、音频、视频或程序代码等,通过文件名和扩展名区分类型。一个文件要由3部分组成,分别是文件保存的路径(位置)、文件的类型和文件的内容。我们可以通过文件的属性去查看文件的位置和类型。在办公领域中经常会遇到文件扩展名有.txt、.csv、.xlsx.、docx、.pdf等,分别表示文本文件、逗号分隔文件、Excel文件、Word文件和PDF文件。
2.文件的编码方式
文件编码方式是指将字符转换为计算机可存储和处理的二进制数据的规则。不同编码方式支持不同的字符集和语言,选择合适的编码对文件处理至关重要。
常见的文件编码方式:UTF-8、UTF-16、GBK/GB2312、ANSI(Windows默认)
3.编码与Unicode值的转换
在python中可以使用chr()函数和ord()函数来实现数字与单个字符间的相互转换。
1.chr()函数
使用形式:
chr(i)
功能:返回数字i对应的Unicode字符。
参数i:可以是二进制、十进制、十六进制的数值,在转换时都会自动转换为二进制的数值。
示例:
print(chr(12),chr(0x12),chr(0b01010101))
2.ord()函数
使用形式:
ord(c)
功能:返回参数c的Unicode数值
参数c:数据类型为字符串类型且表示单个字符。
示例:
print(ord('a'))
二、操作文件
1.打开文件
在python中通常使用open()函数来打开一个文件。使用形式:
open(file,mode='r',buffering=1,encoding=None,error=None,errors=None,newline=None,closed=True.opener=None)
功能:打开一个文件。是与文件建立通道并获取操作文件的权限。
file:需要打开的文件的路径,数据类型为字符串类型。
mode:指文件打开的模式。
r:只读模式(默认),文件不存在则报错
w:写入模式,文件不存在则创建,存在则清空内容
a:追加模式,文件不存在则创建,写入内容追加到末尾
r+:读写模式,文件不存在则报错
w+:读写模式,文件不存在则创建,存在则清空
a+:读写模式,文件不存在则创建,写入内容追加到末尾
‘w’覆盖写模式示例:
for i in range(1,10):
j = 'D:\\代码\\数据'+str(i)+'.txt.'
f = open(j,'w')
f.close()
'x'创建写模式示例:
for i in range(1,10):
j = 'D:\\代码\\数据'+str(i)+'.txt.'
f = open(j,'x')
f.close()
'a'追加写模式示例:
f = open('D:\\代码\\数据','a',encoding='utf-8')
f.write('python')
f.close()
open()函数的复合写法
使用形式:
with open(参数) as 变量名 :
示例:
with open('D:\\代码\\数据','r',encoding='utf-8') as f:
print(f.read())
2.读取文件
read(size):读取指定字节数的内容,不指定 size 则读取全部。
readline():读取一行内容。
readlines():读取所有行,返回列表。
for循环直接迭代文件对象:高效读取大文件。
示例:
# 读取全部内容
with open("test.txt", "r", encoding="utf-8") as f:
content = f.read()
print(content)
# 逐行读取(适合大文件)
with open("test.txt", "r", encoding="utf-8") as f:
for line in f:
print(line.strip()) # strip()去除换行符和空格
3.写入文件
write(string):写入字符串,返回写入的字符数。
writelines(iterable):写入字符串序列(列表、元组等)。
示例:
# 写入内容
with open("output.txt", "w", encoding="utf-8") as f:
f.write("Hello, Python文件操作!\n")
f.writelines(["第一行\n", "第二行\n", "第三行\n"])
三、文件的读取位置和路径
1.seek()方法用于移动文件指针到指定位置
其语法如下:
seek(cookie,whence=0)
cookie:偏移量,表示要移动的字节数。正数表示向文件末尾方向移动,负数表示向文件开头方向移动(部分模式下支持)。
whence:起始位置,可选值为 0、1、2,默认值为 0:
0:从文件开头开始计算(绝对位置),这是唯一在文本模式和二进制模式下都有效的模式。
1:从当前位置开始计算(相对位置),仅在二进制模式下有效。
2:从文件末尾开始计算(相对位置),仅在二进制模式下有效。
方法调用成功后返回新的文件指针位置(从文件开头算起的字节数)。
示例:
# 准备测试文件
with open("test.txt", "w", encoding="utf-8") as f:
f.write("Python文件操作详解:seek()方法实战")
# 文本模式下使用seek()
with open("test.txt", "r", encoding="utf-8") as f:
# 移动到第6个字节(注意:UTF-8中文占3字节,此处可能定位到字符中间)
f.seek(6)
print(f.read(3)) # 读取从第6字节开始的3个字节
# 输出结果可能为乱码,因为刚好切分到中文字符中间
2.绝对路径和相对路径
绝对路径:从根目录开始的完整路径,例如C:\data\file.txt(Windows)或/home/user/data/file.txt(Linux)。
相对路径:相对于当前工作目录的路径,例如./data/file.txt(当前目录下的 data 文件夹)或../config.ini(上一级目录)。
四、csv文件
CSV(逗号分隔值)是一种轻量级的表格数据格式,广泛应用于数据交换、日志存储和报表生成。相比 Excel,CSV 文件结构简单、体积小,且跨平台兼容性强,是 Python 数据处理中的常客。本文将详解如何用 Python 高效处理 CSV 文件。
CSV 文件本质是纯文本,其数据以行为单位,每行中的字段用分隔符(通常是逗号)分隔。例如:
姓名,年龄,城市
张三,25,北京
李四,30,上海
第一行通常为表头(列名),后续行为数据行
支持引号包裹含特殊字符的字段,如"张三, 先生",25,北京
分隔符可自定义(如制表符\t、分号;),需在读取时指定
操作csv文件:
f = open('abcd.csv','r')
print(f.read())
f.close()
总结
本文对python操作文件进行了简单的介绍。希望对大家有帮助。