python-文件

python-文件

python3中的默认的编码解码方式为utf-8
windows默认使用的编码方式为gbk
当读取一个windows文件(gbk),可以指定读取时使用的编码encoding=(‘gbk’)或者不需要指定
with open(‘a.txt’,‘r’,‘encoding=(gbk)’) as f:这样就能读取出a.txt文件的字符串数据
当python写入文件时,默认使用的utf-8编码,在win上打开会乱码,因为win默认编码是gbk

在这里插入图片描述

文件操作

文件操作3步曲:打开–>操作—>关闭

r(readonly)默认参数
-只能读,不能写
-读取文件不存在 会报错

w
-写文件
-文件存在的时候,会清空文件的内容并写入新的文件内容
-文件不存在的时候,会创建新的文件并写入内容

a
-写文件(write only)
-写:不会清空文件内容,会在文件末尾追加
-写:文件不存在的时候,不会报错,会创建新文件并写入内容

“+” 表示同时读写某个文件:

w+
-r/w
-文件不存在 不报错 会创建新文件并写入
-会清空文件

r+
-r/w
-不会清空文件
-文件不存在 报错

a+
同a

打开文件

fileobj = open(filename, mode)
eg:
	f = open('/tmp/passwd','w+')

open()调用参数的解释:
* fileobj 是open()返回的文件对象;
* filename 是该文件的字符串名;
* mode 是指明文件类型和操作的字符串

具体操作



	print(f)	##打印文件
	
	# 写文件
	print(f.read())
	f.write('python')
	# 读文件
	# 判断文件对象拥有的权限
	print(f.readable())
	print(f.writable())
	print(f.tell())
	print(f.read())
	# 告诉当前文件指针所在的位置
	print(f.tell())
	print(f.read())
	print(f.tell())
	f.write('westos')
	print(f.tell())
	print(f.read())

读取

f.read(n)		##n为读取的字节数
f.readline()	##按行读取
##默认情况下读取文件的内容 小的文件:直接用read读取即可,如果是一个大文件(文件大小>=内存) readline()
##注意: readline()结尾, 注意每次读取出来的数据都会有一个\n 所以我们可以使用strip()方法来去掉\n或者空格
f.readlines()	##读取所有类容以列表形式存放

写入

f.write(要写入的内容)		
f.writelines(可迭代对象)	##可写入多行数据

遍历

for x in f:
for x in f.readluines:
输出文件内容

指针

f.tell()		##获取指针
f.seek()		##移动文件zhizhen
seek():指针的移动
#第一个参数:偏移量 >0:向后移动; <0:向前移动
#第二个参数:
	#0:移动到文件开头
	#1:当前位置
	#2:移动到文件的末尾

如果读取的是 图片 音频 视频(非纯文本文件)
需要通过二进制的方式读取和写入

-读取纯文本文件
r r+ w w+ a a+ == rt rt+ wt wt+ at at+
-读取二进制文件
rb rb+ wb wb+ ab ab+

关闭文件

关闭文件将缓存区写入硬盘

##打开必须关闭
f.close()

上下文管理器

打开文件 执行完with语句后 自动关闭文件

with open(文件地址,模式) as f:
##模式默认r

eg:

f = open('/tmp/passwd','w+')
		with open('/tmp/passwd') as f:
    		print(f.read())
		print(f.closed)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值