当前位置:首页 » 编程语言 » python读字节

python读字节

发布时间: 2022-06-01 03:52:15

python对文本文件的读有哪些方法,写有哪些方法

1 文件读取全文本操作
在一定场景下我们需要把文本全部内容读取出来,进行处理。python提供三种函数读取文件,分别是read readline readlines,
read():读取文件的全部内容,加上参数可以指定读取的字符。
readline():读取文件的一行。
readlines():读取文件的所有行到内存中。
不同场景下我们可以选择不同函数对文件进行读取。
1.1 方法一
file_name = input("请输入你要打开的文件的完整路径及名称")
file= open(file_name, "r")
txt=file.read()
# 全文本的处理
file.close()
使用read函数将文件中的内容全部读取,放在字符串变量txt中。这样操作适合于文本较小,处理简单的情况,当文件较大时,这种方式处理时不合适的。一次性读取较大的文件到内存中,会耗费较多的时间和资源。这时候分批处理效果更好。
1.2 方法二
file_name = input("请输入你要打开的文件的完整路径及名称")
file= open(file_name, "r")
txt= file.read(4)
# 文本的处理while txt != ""txt= file.read(4)
# 批量文本处理
file.close()
这种方法适合于分批处理文本信息,每次批量读入,批量处理,不会对内存造成较大的压力。
1.3 方法三
file_name = input("请输入你要打开的文件的完整路径及名称")
file= open(file_name, "r")for line infile.readlines():
# 处理每一行数据
file.close()
这种处理方式适合处理以行为分割特点的文本,并且文本较小,因为这种处理方式需要一次性把文件所有内容读取到内存中。
1.4 方法四
file_name = input("请输入你要打开的文件的完整路径及名称")
file= open(file_name, "r") # 这里的file时文件句柄for line infile:
# 处理每一行数据
file.close()
这种方式和方法三中的区别是分行读入,逐行处理,不会一次性把文件所有内容都读入到内存中,对一些大文件的处理是很有效的。
2 文件写入文本操作
文件写入有两种写入函数和一种辅助支持。
write():向文件中写入一个字符或者字节流
writelines():将一个元素全为字符串的列表写入到文件中 需要注意的是,writelines写入列表元素的时候会把列表元素的内容拼接到一起写入,不会有换行和空格 。
seek(): 辅助写入函数offset偏移量参数代表含义如下
0 - 文件开头
1 - 当前位置
2 - 文件结尾
2.1 方法一
file_name = input("output.txt", "w+")
text= "hello world!"file_name.write(text)
file.close()
2.2 方法二
file_name = input("output.txt", "w+")
list= ["中午","早上","晚上"]
file_name.writelines(list)for line infile:
# 读取写入的数据,这时候发现是没有任何内容的
file.close()
我们增加一行代码就可以读取到写入的文件内容,利用seek()函数调整写操作指针的位置,可以实现写操作之后的正常读取。
file_name = input("output.txt", "w+")
list= ["中午","早上","晚上"]
file_name.readlines(list)
file_name.seek(0) # 调整写的指针到文件的开始位置for line infile:
# 读取写入的数据,这时候会读出一行写入的数据。
file.close()

② Python 读取的字节流转换为字符串

不需要unpack,使用decode即可
例如我在一个文件中写入'a\x00b\x00c\x00d\x00'
然后使用binary
stream打开文本,使用decode转换即可
with
open(
'data'
,'rb'
)
as
f:
print(
f.read(
).decode(
'UTF-16'
)
)
你只要将读取的字节流转换成str替换f.read(
)即可

③ Python对一行按照字节位置读取想要的字符,文件有多行,如何循环运行

a,b=(int(x.split()[-1])forxinopen('B').readlines()[:2])
open('C','w').writelines([s.replace(s[a,b],' '+s[a,b]+'')forsinopen('A').readlines()])

④ python 二进制读取文件 如何知道真实的读取字节大小

read(100)读取的结果保存在buff,buff是字节类型

用len(buff)可以返回读取字节的实际长度。

⑤ Python如何读写文本文件

1.open使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。
file_object = open('thefile.txt')
try:
all_the_text = file_object.read( )
finally:
file_object.close( )
注:不能把open语句放在try块里,因为当打开文件出现异常时,文件对象file_object无法执行close()方法。
2.读文件读文本文件input = open('data', 'r')
#第二个参数默认为r
input = open('data')

读二进制文件input = open('data', 'rb')
读取所有内容file_object = open('thefile.txt')
try:
all_the_text = file_object.read( )
finally:
file_object.close( )
读固定字节file_object = open('abinfile', 'rb')
try:
while True:
chunk = file_object.read(100)
if not chunk:
break
do_something_with(chunk)
finally:
file_object.close( )
读每行list_of_all_the_lines = file_object.readlines( )
如果文件是文本文件,还可以直接遍历文件对象获取每行:
for line in file_object:
process line
3.写文件写文本文件output = open('data.txt', 'w')
写二进制文件output = open('data.txt', 'wb')
追加写文件output = open('data.txt', 'a')

output .write("\n都有是好人")

output .close( )

写数据file_object = open('thefile.txt', 'w')
file_object.write(all_the_text)
file_object.close( )

⑥ python里open和read为什么分别按行和字节读取

Python的open文件的读取方式有以下几种方法:
read([size]):读取文件,如果传了size参数,则读取size字节,否则读取全部
readline([size]):读取一行
readlines([size]):读取完文件,返回文件每一行所组成的列表

⑦ python 怎么读取网络zip字节流,并保存到本地zip文件中

url="网络zip的地址"
path="你本地的地址"

req=urllib2.urlopen(url)
data=req.read()
withopen(path,"wb")aszip:
zip.write(data)
req.close()

如果解决了您的问题请采纳!
如果未解决请继续追问

⑧ python3 怎么读取字节对象

1. python读取二进制文件
读取二进制文件并保存为Long型 (读取原文件通过UltraEdit查看16进制编码是“78 56 34 12”)
#以二进制的方式读取文件
#coding: UTF-8
fileData = open('/home/ubuntu/staff_sample.dat','rb')

#读取文件的前4个字节 #将读取的4个字节转换为long
data_id = struct.unpack("l",fileData.read(4))
print data_id

打印的结果是305419896。

⑨ python 读一个字节二进制(原数字用C char类型写入 )现在要读出并且转化为int 类型在python里

一般用pack,unpack比较好。不过干吗用一个名字呢?用c当然得到char,也就是作为string,干吗不用b,B之类的呢。用imkow的不太好。其实unpack是其作用的。只是你的格式化字符有问题。
d=struct.unpack("b",data[0])[0]

下面是字符和unpack出来的数据类型的关系。
x pad byte no value
c char string of length 1
b signed char integer
B unsigned char integer
? _Bool bool (1)
h short integer
H unsigned short integer
i int integer
I unsigned int integer or long
l long integer
L unsigned long long
q long long long (2)
Q unsigned long long long (2)
f float float
d double float
s char[] string
p char[] string
P void * long

热点内容
odbcforsqlserver 发布:2025-02-10 22:26:37 浏览:598
区块链数据存储在那里 发布:2025-02-10 22:25:48 浏览:687
c语言for死循环 发布:2025-02-10 22:24:08 浏览:521
苹果限制访问初始密码 发布:2025-02-10 22:21:31 浏览:758
为什么安卓手机一年后卡顿 发布:2025-02-10 22:15:39 浏览:731
职工信息管理系统设计c语言 发布:2025-02-10 22:15:30 浏览:118
预算法的理念 发布:2025-02-10 22:15:25 浏览:132
如何结合商圈顾客特点配置货品 发布:2025-02-10 22:10:59 浏览:593
纸币如何配置财富 发布:2025-02-10 22:00:57 浏览:706
数据库中存放的是视图的 发布:2025-02-10 21:57:46 浏览:628