Python--文件

1.、文件

1.1 什么是文件

文件是用于数据存储的单位
文件通常用来长期存储数据
文件中的数据是以字节 (byte)为单位进行存储的

1.2 文件的操作流程:

1)打开文件
2)读/写文件
3)关闭文件
注:
任何操作系统,一个应用程序同时打开文件的数量有最大数限制

1.2.1 文件的打开函数:

open(file,mode='rt')	#用于打开一个文件,返回文件流对象,如果打开失败,则会触发OSError错误

1.2.2 文件的关闭方法:

F.close()			#关闭文件,释放系统资源

1.2.3 示例:

try:
    # 打开文件
    f = open('haha.txt',mode = 'r')
    print("打开文件成功")
    # 读文件
    print("文件内容为:",f.read())
    # 关闭文件
    f.close()
    print("文件已关闭")
except:
    print("文件打开失败!")

2、文本文件的操作

2.1 说明:

1)对文本文件的读写需要用字符串str进行读取和写入,
2)默认文件中存储的都是字符(文字)数据,再读写中会自动进行编码转换操作
3)以行为单位分隔,在python内统一用‘\n’作为换行符进行分隔

2.2 各种系统的换行符:

Linux 	:	\n
Windows:	\r\n
旧Macintosh	\r
新Mac X		\n

2.3 文本文件读操作:

F.read([字符数或字节数])	
F.readline()	
F.resdlines()	

2.4 文本文件读方法

模式字符串:‘w’或 ‘x’ 或 ‘a’
F.write(字符串)
F.writelines(字符串列表)

2.3文件的迭代读取

文件流对象时可迭代对象,迭代过程将以换行符'\n'作用分隔符依次获取
示例:
f = open('helloworld.txt','rt')
for i in f:
    print(i)
f.close()

3.标准输入输出文件

sys.stdin  标准输入文件(默认为键盘设备)
Ctrl+d	快捷键是让键盘输入文件结束符
sys.stdout 标准输出文件(默认为屏幕终端)
sys.srderr 标准错误输出文件(默认为屏幕终端)

3.1说明:

1)标准文件不需要打开和关闭就可以使用
2)每个python程序启动后都会有以上三个文件供我们使用

3.2示例:

import sys
s = sys.stdin.readline()
print(s)
sys.stdin.close() 	# 导致input不可用
s2 = input()
print(s2)			# input()基于stdin.readline
--------------------------------------------------------
import sys
sys.stdout.write("nihao\n")
sys.stderr.write("buhao\n")

4.二进制文件操作: 把文件当成字符串来操作

4.1模式字符:‘b’

    默认文件中存储的都是以字节为单位的数据,通常有人为的格式
    对二进制文件的读写需要用字节串进行操作

4.2常用的操作方法:

F.read([字节数/字符数])
    对于文本文件,F.read()返回类型为字符串str
    对于二进制文件,F.read()返回的类型为字节串bytes
F.write()
    同上,对于二进制文件,写入的数据为字节串bytes 或 bytearray

4.3示例

# 此示例示意二进制文件的读操作
try:
    fr = open("haha.txt",'rb')
    b=fr.read()  
    print(b)
    fr.close()
except OSError:
    print('打开文件失败')

示例2

# 此示例示意二进制文件的写操作
try:
    fbw = open('mybinary.txt','wb')
    s = '你好'
#    fbw.write(s)	 # 出错,不可以以字符串为单位
    b = s.encode('utf-8')
    fwb.write(b)
    ba = bytearray(range(256))
    fwb.write(ba)
    fnw.close()
    print("文件写入成功")
except OSError:
    print("打开失败")

5.F.tell()方法

返回当前文件流的读写位置(从0开始,以字节为单位)

6.F.seek()方法

6.1作用:
设置文件的读写位置

6.2格式:
F.seek(偏移量,whence=相对位置)

    偏移量:
	大于0代表向文件尾方向移动
	小于0代表从当前位置开始偏移
	--
    相对位置:
	0 代表文件从头开始偏移
	1 代表从当前位置开始偏移
	2 代表从文件尾开始偏移

6.3 示例

f = open('20.txt','rb')   20.txt:abcdeABCDE1234567890
b = f.read(3)
print(b)
f.seek(5,0)	# 代表从文件头向后移动5字节
f.seek(2,1) 	# 代表从当前位置向后移动两个字节
f.seek(-15,2)	# 代表从文件尾向前移动15个字节
b = f.read(5)
print(b) 		#ABCDE

7.F.flush()函数:

强制将缓冲区的内容写到磁盘上

示例:

import time
f = open('myflush.txt','w')
while True
    f.write('aaaa'*8000)	# 先存放在缓冲区,缓冲区满再写入文件
    time.sleep(1)
    print("写入一次")
s = input("请输入回车继续")
f.close() 

示例2

f = open('myflush.txt','w')
f.write('aaaa'*8000)	# 先存放在缓冲区,缓冲区满再写入文件
f.flush()		# 强制写入
s = input("请输入回车继续")
f.close()

8.汉字编码

8.1问题:十个汉字占多少个字节?

20个  :  (GBK编码)
30个  :  (UTF-8编码)

8.2 国标编码:

GB18030(二字节 或四字节编码,27533个字)	# 第三个 容纳常用
GBK(二字节编码,21003个字)				# 第二个 包含蒙文、回文
GB2312(二字节编码,6763个字)			# 第一个
(Windows常用)

8.3国际标准:

UNICODE   <-------------------------------->    UTF-8(8-bit Unicode Transformation Format)
        (Linux/ Mac OS X / IOS / Android 常用)

python内部的字符串用的时UNICODE,bytes用的时UTF-8

9.编码注释
在源文件中第一行或第二行写入如下内容为编码注释

# -*- coding:gbk -*-
# 设置源文件没编码格式为 gbk
--
# -*- coding:utf-8  -*-
# 设置源文件没编码格式为 utf-8

作用:告诉解释执行器,当前的py文件的编码格式是什么

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值