python - 在 python 中的文件内搜索

标签 python python-2.7

我正在处理次声探测器的结果,但有时它们会出现故障,因此数据点被记录为“0”。这是毫无值(value)的数据。我希望能够在文件中搜索“0”,计算它们并打印出结果。

到目前为止,我所能做的就是在文件中搜索“0”并获得正确/错误的答案。

这是我的代码:

def findzero( fname ): 
    if os.path.isfile(fname): 
        f = open( fname ) 
        s = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ) 
        if s.find('0') != -1: 
            print 'true' 
        else: 
            print '' 
    return;

最佳答案

逐行扫描文件,仅使用'0'来计算行数:

def countzero(fname): 
    try:
        with open(fname) as f:
            return sum(line.strip() == '0' for line in f)
    except IOError:
        # not a file we can read
        return None

Python bool类型是int的子类,True等于1,False等于0,因此您可以对 bool 值求和来获得计数。

如果您需要百分比,则需要分别计算行数和 0 计数:

def count_zeros_and_lines(fname): 
    try:
        with open(fname) as f:
            zeros = total = 0
            for line in f:
                if line.strip() == '0':
                    zeros += 1
                total += 1
            return zeros, total
    except IOError:
        # not a file we can read
        return None

这将返回零计数和总行数。

关于python - 在 python 中的文件内搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24384646/

相关文章:

python - P4 python 连接中断 SSL 错误

python - 无法覆盖由monkeypatch 为单例类设置的函数的初始值

python - Seaborn 热图,绘图周围没有空白

python - 在Python中的圆括号或大括号中不存在的逗号上分割字符串

python - 使用 pip 安装 MySQL-python 时,最终出现以下输出并且无法安装 MySQLdb

python-2.7 - 从datetime64 [ns]变量中提取小时

python - PyQt6教程-如何接收信号参数

python - 如何生成给定范围内的随机数作为 Tensorflow 变量

python - 在 PyInstaller 中将数据与 .spec 文件捆绑

python - 使用 `import __main__` 是一种好习惯吗?