python---文件的操作

python—文件


文件是磁盘上用于存储相关信息的命名位置,它用于将数据永久存储在存储器中

一、文件的操作
1、open()返回一个文件对象,最常与两个参数一起用:
open('filename',mode)```

open(参数1,参数2,参数3,...)---打开文件,打开的是一个文件对象
参数1:路径和文件名
参数2:文件打开的方式(读和写)
参数3:文件打开的编码形式;utf-8

**参数1 ** :包含文件名的字符串
语法:'.'表示当前文件夹(可以省略不写);'..'表示返回上一级
文件夹和文件夹之间以及文件夹和文件之间需要使用'\'间隔
路径有相对路径和绝对路径之分
相对路径∶以当前所找参照物为基础,另一个文件相对于参照物的所在位置,应该使用'/'
绝对路径:以磁盘为参照物,使用'\'

参数2:包含文件使用的方式r a w +
r : 只读,如果文件不存在,报错
w: 只写,如果文件不存在,先自动创建再写入内容;如果文件存在则先清空文件
a: 只写,如果文件不存在,先自动创建再写入内容;如果文件存在则追加内容
+: 可读可写,将r、a、w变为可读可写的符号:r+、a+、w+;python操作文件要么读要么写,不能同时读写
r、a、w、+->文件编辑方式, t、b-文件展示形式, t-文本(t是默认的可以不写), b -是以二进制打开文件

参数3encoding = 'utf-8'

#打开文件,获得文件对象,然后将文件对象赋值给一个变量
f=open(r'.\test\01.txt', 'r',encoding='utf-8')
2、文件读操作–read()

读操作:打开文件open–读取文件read—保存关闭close()

#read()---一次性读所有内容
print(f.read())
#readline()---一次读一行,直到换行符为止,读出结果为字符串;换行符留在字符串的末尾
print(f.readline())
#readlines()---一次读全部内容,每一行内容作为列表中的一个元素
print(f.readlines())
3、文件写操作–write()

写操作:新建文件/打开文件–写入内容–保存关闭

f=open(r'./test/03-咏鹅.txt','w',encoding='utf-8')
str_1='\t咏鹅\n\t骆宾王\n鹅鹅鹅,曲项向天歌\n白毛浮绿水,红掌拨清波'
print(str_1)
f.write(str_1)
f.write('\n')
f.write(str_1)
f.close()# 关闭文件
对文件进行操作之后都要将文件关闭
4、更改文件位置–seek()
fileobject.seek(offset,whence)
#offset -- 开始的偏移量,也就是代表需要移动偏移的字节数 默认为0
#whence:可选,默认值为0。给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起
#如果操作成功,则返回新的文件位置,如果操作失败,则函数返回 -1

一个英文符号对应一个偏移量,一个汉字或者一个中文字符对应三个偏移量,

python中有序序列的下标从零开始,但是python操作文件时的偏移量从1开始
f1.seek(6,0) # 将指针移动到文件开头再增加六个偏移量

在文本文件中,没有使用b模式选项打开的文件,只允许从文件头开始计算相对位置,从文件尾部计算时就会引发异常

f1=open('./test/界面.txt','rb')
f1.seek(-3,2)# 所以偏移量要为负数
print(f1.read())
5、查看当前指针位置 tell()
#换行 Linux:\n  windows:\r\n  mac:\r
f=open(r'./test/03-咏鹅.txt','w',encoding='utf-8')
print(f1.tell())
f1.close()
二、图片的操作
1、图片的读取
f1=open('./test/图1.jpg','rb')
result=f1.read()
f1.close()
2、图片的模拟下载(写)
f2=open('./test/管理员.jpg','wb')
f2.write(result)
f2.close()
三、csv文件的操作

csv·文件本质是文本文件,只是以表格的形式展示数据。使用csv的内置模块进行csv文件的读写操作

1、csv文件读方法

# 返回一个文件对象
f1 = open('./test/店铺信息.csv', 'r', encoding='utf-8')
# 创建读方法
myreader = csv.reader(f2)
# 获取数据
for i in myreader:
    for j in i:
        print('{:^8}'.format(j),end=' ')
    print()
f2.close()

2、csv文件写方法

# 1、返回一个文件对象
# windows或者Linux操作系统,写csv文件必须加newline=''
# newline='' ->将换行转为空
f1 = open('./test/店铺信息.csv', 'w', encoding='utf-8', newline='')
print(f1)
# 2、创建写方法对象
mywrite = csv.writer(f1)
# 3、写入别名
# 单行写入:writerow()
col = ['店铺名', '人均', '口味', '环境', '服务']
mywrite.writerow(col)
# 4、写入对应信息
# 多行写入:writerows()
data = [['川菜馆子', 30, 4.6, 4.8, 4.7],
        ['老火锅', 60, 4.6, 4.8, 4.7],
        ['巴蜀大宅门', 50, 4.6, 4.8, 4.7]
        ]
mywrite.writerows(data)
f1.close()
#店铺信息.csv
#店铺名,人均,口味,环境,服务
#川菜馆子,30,4.6,4.8,4.7
#老火锅,60,4.6,4.8,4.7
#巴蜀大宅门,50,4.6,4.8,4.7
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兮知

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值