【问题标题】:get file size of the file from the file object从文件对象获取文件的文件大小
【发布时间】:2017-09-02 20:14:49
【问题描述】:

我需要根据文件对象知道文件的大小

import csv
import os
with open("test.csv", "rb") as infile:
    reader = csv.reader(infile)
    print reader
    filesize(reader)
def filesize(reader):
    os.getsize(reader) #And i need work with reader for more details.so I must need to pass a reader or file object

当我运行这个时,我得到一个输出是

<_csv.reader object at 0x7f5644584980>

我如何从这个文件对象中获取文件的大小?

我检查了这个网站,但这些不是 CSV 属性size of an open file object

编辑:当我使用这两个内置函数时,我得到的错误是

AttributeError: '_csv.reader' 对象没有属性 'seek' AttributeError: '_csv.reader' 对象没有属性 'tell'

【问题讨论】:

  • @我告诉我在这个网站上测试过的问题。它在 csv 文件中无效
  • 你不能使用infile变量吗?
  • @CristiFati 它不是重复的。为什么你说它是重复的。你能证明这一点
  • @bobmarti 它是重复的,因为在你的情况下最好的方法似乎是在接受的答案中指出的那个。

标签: python python-2.7 file csv


【解决方案1】:

os.path.getsize 有什么问题?

使用您的代码:

import os
import csv
with open("test.csv", "rb") as infile:
   reader = csv.reader(infile)
   print os.path.getsize(infile.name)

大小以字节为单位。

【讨论】:

  • @duan 我需要将阅读器传递给另一个函数然后我如何获得解决方案
  • @bobmarti,您无法从阅读器访问文件/路径,它旨在获取可迭代的,而不是文件,您必须将文件大小/文件对象传递给您的其他函数。
【解决方案2】:

您可以使用os.path.getsizeos.stats

import os
os.path.getsize('test.csv')

os.stat('test.csv').st_size 

返回大小,以字节为单位。

【讨论】:

    【解决方案3】:

    添加此答案是因为它实际上回答了有关直接使用文件对象的问题:

    import csv
    import os
    with open("test.csv", "rb") as infile:
        reader = csv.reader(infile)
        print reader
        infile.seek(0, os.SEEK_END)
        filesize = infile.tell()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-17
      • 2017-08-26
      • 1970-01-01
      • 2015-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多