Python 在使用文件对象之前确定文件对象大小

Python 在使用文件对象之前确定文件对象大小,python,filesize,file-copying,Python,Filesize,File Copying,在使用BeautifulSoup解析和操作下载的python文件之前,我试图确定该文件的大小。(我打算很快更新到ElementTree,但在简单地使用它之后,就我所见,它并不能解决我在这里提出的问题) 这段代码不稳定,因为当我第一次在len()中读取()文件时,它自然会到达一个EOF,因此当我想使用BeautifulSoup访问该文件对象时,该文件对象将为空 我最初的想法是简单地用fcopy=f行复制对象,但这让我认识到我只是在引用底层对象,什么也得不到 然后我认为fcopy=copy.copy

在使用BeautifulSoup解析和操作下载的python文件之前,我试图确定该文件的大小。(我打算很快更新到ElementTree,但在简单地使用它之后,就我所见,它并不能解决我在这里提出的问题)

这段代码不稳定,因为当我第一次在
len()
中读取()文件时,它自然会到达一个EOF,因此当我想使用BeautifulSoup访问该文件对象时,该文件对象将为空

我最初的想法是简单地用
fcopy=f
行复制对象,但这让我认识到我只是在引用底层对象,什么也得不到

然后我认为
fcopy=copy.copy(f)
会创建对象的真实副本,但显然不是因为读取f仍然会导致fcopy是一个空文件对象

我甚至阅读了关于将对象作为参数传递给函数以避免这种情况的文章,并尝试了以下代码

import urllib2, BeautifulSoup
def get_bytes(file):
    return len(file.read())

query = 'http://myexample.file.com/file.xml'
f = urllib2.urlopen(query)
print(get_bytes(f))
soup = BeautifulSoup.BeautifulStoneSoup(f.read())

但我也有同样的问题。如何在不破坏文件的情况下确定此对象的文件大小?

将文件内容复制到变量中并使用它:

import urllib2, BeautifulSoup

query = 'http://myexample.file.com/file.xml'
f = urllib2.urlopen(query)
content = f.read()
print len(content)
soup = BeautifulSoup.BeautifulStoneSoup(content)

啊!很明显!谢谢:)
import urllib2, BeautifulSoup

query = 'http://myexample.file.com/file.xml'
f = urllib2.urlopen(query)
content = f.read()
print len(content)
soup = BeautifulSoup.BeautifulStoneSoup(content)