用python读取文件
试图理解如何读取python中的文件。这就是我所做的,它工作不太正常:用python读取文件,python,file,Python,File,试图理解如何读取python中的文件。这就是我所做的,它工作不太正常: import os.path filename = "A 180 mb large file.data" size = os.path.getsize(filename) f = open(filename, "r") contents = f.read() f.close() print "The real filesize is", size print "The read filesize is", len(co
import os.path
filename = "A 180 mb large file.data"
size = os.path.getsize(filename)
f = open(filename, "r")
contents = f.read()
f.close()
print "The real filesize is", size
print "The read filesize is", len(contents)
f = open(filename, "r")
size = 0
while True:
contents = f.read(4)
if not contents: break
size += len(contents)
f.close()
print "this time it's", size
产出:
The real filesize is 183574528
The read filesize is 10322
this time it's 13440
有人知道这是怎么回事吗?:) 如果您的文件混淆了C库,那么您的结果是预期的 操作系统认为是180Mb 但是,到处都是空字节,这可能会混淆C stdio库
尝试用“rb”打开文件,看看是否得到不同的结果。如果您的文件混淆了C库,那么您的结果是预期的 操作系统认为是180Mb 但是,到处都是空字节,这可能会混淆C stdio库
尝试用“rb”打开文件,看看是否会得到不同的结果。第一次是以字节为单位的文件大小,另一次是以文本形式读取文件并计数字符。将所有的
open(filename,“r”)
更改为open(filename,“rb”)
,它就可以工作了。第一次是以字节为单位的文件大小,其他时候是以文本形式读取文件并计数字符。将所有的open(filename,“r”)
更改为open(filename,“rb”)
,它就会工作。这与字符串无关:Python非常喜欢字符串中的空字节
这是因为您在Windows上,以文本模式打开文件,因此它会将所有“\n”转换为“\r\n”,从而销毁所有二进制数据
使用模式“rb”以二进制模式打开文件这与字符串无关:Python非常喜欢字符串中的空字节 这是因为您在Windows上,以文本模式打开文件,因此它会将所有“\n”转换为“\r\n”,从而销毁所有二进制数据
使用模式“rb”以二进制模式打开文件。您在Windows上吗?如果改为以“rb”模式打开文件,会发生什么情况?您在Windows上吗?如果改为以“rb”模式打开文件会发生什么?那么如何检查字符串的大小(以字节为单位)?因为这就是你从f.read得到的字符串,不是吗?比如说,我想把一个文件从一台计算机发送到另一台计算机,它是一个大文件,所以必须逐件发送。首先,发送计算机将发送文件的大小,因此另一台计算机将知道所期望的内容。然后它将开始发送文件。另一台计算机必须计算得到的字节数,这样才能知道整个文件何时发送。那你怎么检查呢?那你怎么检查字符串的大小(以字节为单位)?因为这就是你从f.read得到的字符串,不是吗?比如说,我想把一个文件从一台计算机发送到另一台计算机,它是一个大文件,所以必须逐件发送。首先,发送计算机将发送文件的大小,因此另一台计算机将知道所期望的内容。然后它将开始发送文件。另一台计算机必须计算得到的字节数,这样才能知道整个文件何时发送。那你怎么检查呢?