python - 如何检查 .xls 和 .csv 文件是否为空

标签 python python-2.7 csv xls xlrd

问题 1:如何检查整个 .xls 或 .csv 文件是否为空。这是我使用的代码:

try:
    if os.stat(fullpath).st_size > 0:
       readfile(fullpath)
    else:
       print "empty file"
except OSError:
    print "No file"

一个空的 .xls 文件的大小大于 5.6kb,因此它是否有任何内容并不明显。 如何检查 xls 或 csv 文件是否为空?

问题2:我需要检查文件的头部。 如何告诉 python 只有一行标题的文件是空的?

import xlrd
def readfile(fullpath)
    xls=xlrd.open_workbook(fullpath)  
    for sheet in xls.sheets():
        number_of_rows = sheet.nrows 
        number_of_columns = sheet.ncols
        sheetname = sheet.name
        header = sheet.row_values(0) #Then if it contains only headers, treat it as empty.

这是我的尝试。我如何继续使用此代码?

请为这两个问题提供解决方案。提前致谢。

最佳答案

使用 .empty 在 pandas 中这很简单方法。这样做

import pandas as pd

df = pd.read_csv(filename) # or pd.read_excel(filename) for xls file
df.empty # will return True if the dataframe is empty or False if not.

对于只有标题的文件,这也将返回 True

>> df = pd.DataFrame(columns = ['A','B'])
>> df.empty
   True

关于python - 如何检查 .xls 和 .csv 文件是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42537194/

相关文章:

python - 如何在 Python 中管理并发 LMDB 写入?

python - 如何解决 AzureCliCredential 问题?

python - 如何使用Python生成器

csv - Pandas read_csv 和 UTF-16

php - 将csv文件导入mysql

python - 基于 R 平方值创建数据框

python - 从列表写入 CSV,write.row 似乎停在了一个奇怪的地方

python-2.7 - python protobuf 安装为 windows

python - 什么时候删除 Tomcat 8/temp 目录是安全的?

php - 将非 ASCII 字符打印到 CSV 文件中