文件函数和csv文件读写操作
一、文件函数
(一)seek(参数1, 参数2)
能够将指针移动指定的偏移量。
1.参数1:移动的偏移量,默认为0。
一个英文符号对应一个偏移量;
一个汉字和一个中文符号对应三个偏移量;
Python中有序序列(容器)下标从0开始;
Python操作文件时的偏移量从1开始。
代码:
f1 = open('./test/界面.txt', 'r', encoding='utf-8')
print(f1.read())
f1.seek(21, 0) # 跳过六个符号:将指针移动到文件开头,再增加六个偏移量
# f1.seek(26, 0)
print(f1.read())
f1.close()
结果:
欢迎进入系统!
** 请选择对应功能: **
** 1. 登录 **
** 2. 注册 **
** 3. 退出系统 **
** 请选择对应功能: **
** 1. 登录 **
** 2. 注册 **
** 3. 退出系统 **
2.参数2: 0, 1, 2
0: 将指针移动到文件开头;
1: 指针指向当前位置;
2: 讲指针移动到文件尾部。
代码:
f1 = open('./test/界面.txt', 'r', encoding='utf-8')
# f1.seek(0,2)
# 将指针再移动到文件开头
print(f1.read())
# f1.seek(0,2) #指针移动到文件尾部
# f1.seek(0,0) # 将指针再移动到文件开头
f1.close()
输出结果:
欢迎进入系统!
** 请选择对应功能: **
** 1. 登录 **
** 2. 注册 **
** 3. 退出系统 **
(二)tell()
查看当前指针的位置。
代码:
f1 = open('./test/界面.txt', 'r', encoding='utf-8')
# tell():查看当前指针的位置
print(f1.tell())
f1.close()
结果:
202
(三)换行
由于系统不一样,最后一个字后面的符号不一样。
linux: \n;
windows: \r\n;
mac: \r
二、csv文件的读写操作
csv文件本质是文本文件,只是以表格的形式展示数据
使用csv内置模块进行csv文件的读写操作。
(一)模块导入
代码:
import csv
(二)csv文件写操作
1.返回一个文件对象
代码:
# windows或者linux操作系统,写csv文件必须加newline=''
# newline = '' 将换行转为空
f1 = open('./店铺信息.csv', 'w', encoding='utf-8', newline='')
print(f1)
输出:
<_io.TextIOWrapper name=‘./店铺信息.csv’ mode=‘w’ encoding=‘utf-8’>
2.创建写方法对象
借助python已经实现的写csv的模块实现的功能。
代码:
# 2.创建写方法对象 借助python已经实现的写csv的模块实现的功能。
myWrite = csv.writer(f1)
3.写入列名
代码:
# 3.写入列名
# 单行写入: writerow()
# 借助列表写入
col = ['店铺名', '人均', '口味', '环境', '服务']
myWrite.writerow(col)
4.写入对应信息
代码:
# 4.写入对应信息
# 多行写入:writerows()
datas = [
['吼堂火锅', 126, 4.5, 4.7, 4.6],
['小龙坎', 100, 4.8, '4.8', 4.7],
['巴蜀大宅门', '70', '4.8', '4.6', 4.8]
]
myWrite.writerows(datas)
5.关闭文件
f1.close() # 这一步不能省略
6.最后结果
代码:
# 1.返回一个文件对象
# windows或者linux操作系统,写csv文件必须加newline=''
# newline = '' 将换行转为空
f1 = open('./店铺信息.csv', 'w', encoding='utf-8', newline='')
print(f1)
# 2.创建写方法对象 借助python已经实现的写csv的模块实现的功能。
myWrite = csv.writer(f1)
# 3.写入列名
# 单行写入: writerow()
# 借助列表写入
col = ['店铺名', '人均', '口味', '环境', '服务']
myWrite.writerow(col)
# 4.写入对应信息
# 多行写入:writerows()
datas = [
['吼堂火锅', 126, 4.5, 4.7, 4.6],
['小龙坎', 100, 4.8, '4.8', 4.7],
['巴蜀大宅门', '70', '4.8', '4.6', 4.8]
]
myWrite.writerows(datas)
f1.close()
在当前目录创建一个自己命名的csv文件,写入的内容为:
店铺名,人均,口味,环境,服务
吼堂火锅,126,4.5,4.7,4.6
小龙坎,100,4.8,4.8,4.7
巴蜀大宅门,70,4.8,4.6,4.8
(三)csv文件读操作
1.创建写方法
代码:
# csv文件读操作
f2 = open('./店铺信息.csv', 'r', encoding='utf-8')
# 创建读方法
myReader = csv.reader(f2)
2.遍历并打印
代码:
for i in myReader:
for j in i:
print('{:<8}'.format(j), end='\t')
print()
3.关闭文件
f2.close()
4.总的代码和结果
# csv文件读操作
f2 = open('./店铺信息.csv', 'r', encoding='utf-8')
# 创建读方法
myReader = csv.reader(f2)
for i in myReader:
for j in i:
print('{:<8}'.format(j), end='\t')
print()
f2.close()
结果打印:
店铺名 人均 口味 环境 服务
吼堂火锅 126 4.5 4.7 4.6
小龙坎 100 4.8 4.8 4.7
巴蜀大宅门 70 4.8 4.6 4.8
本文介绍了Python中的文件操作,包括使用`seek()`和`tell()`函数控制文件指针,以及不同系统的换行符。此外,还详细讲解了如何使用csv模块进行CSV文件的读写,包括写入列名和数据,以及读取和打印CSV文件内容。
4万+

被折叠的 条评论
为什么被折叠?



