我有一个名为home.html
的小型html文件,我发现os.path.getsize('home.html')
提供的数字与len(open('home.html').read())
不同。 os.path.getsize
给出的数字是925,而len
给出的数字是910.我知道910是正确的数字而不是925,因为使用925使用chrome不能显示页面,但它完美地使用910.任何人都可以向我解释出现了什么问题吗?
inb4我不认为这是一个unicode的事情,因为我在Windows上,我使用python 2.7,file.read
的结果是str
不是unicode
对象,我的html中的所有字符都是ASCII。以下是home.html
的内容:
<!DOCTYPE html>
<html>
<body style="text-align:center;">
<a href="https://github.com/ChrisCalderon/Yashttpd">
<img style="position:absolute;top:0;right:0;border:0;" src="https://camo.githubusercontent.com/a6677b08c955af8400f44c6298f40e7d19cc5b2d/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f677261795f3664366436642e706e67" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png">
</a>
<h1>ECHO SERVER</h1>
<p>This is how requests are parsed:</p>
<iframe src="echo" style="border:none;width:40%;height:325px;" scrolling="off">
If you see the text, your browser doesn't support iframes!
</iframe>
<p>The whole code for this site is <a href="myhandler.html">here</a>!</p>
<p>This is all built with Yashttpd. Find it in my GitHub repository by clicking the ribbon above!</p>
</body>
</html>
编辑:
我想提一下,os.path.getsize
似乎可以正常使用我的favicon.ico文件。
答案 0 :(得分:3)
该文件有15行,您在磁盘的大小和内存中的 之间的差异为15。在Windows上,行尾是序列"\r\n"
,但是当你读它时(除非你使用二进制模式打开文件)Python(或底层例程)在Python的行尾转换那些序列只有"\n"
。
两个值都是正确的:
\r\n
\n