读取文件时脚本跳过第二个 for 循环

2023-12-11

我正在尝试读取日志文件并将某些值与预设阈值进行比较。我的代码设法记录第一个的原始数据for在我的函数中循环。

我添加了打印语句来尝试弄清楚发生了什么,并且我成功地推断出我的第二个 for 循环从未“发生”。

这是我的代码:

def smartTest(log, passed_file):    
    # Threshold values based on averages, subject to change if need be
    RRER = 5
    SER = 5
    OU = 5
    UDMA = 5
    MZER = 5
    datafile = passed_file
    # Log the raw data    
    log.write('=== LOGGING RAW DATA FROM SMART TEST===\r\n')
    for line in datafile:
        log.write(line)
        log.write('=== END OF RAW DATA===\r\n')

        print 'Checking SMART parameters...',
        log.write('=== VERIFYING SMART PARAMETERS ===\r\n')

        for line in datafile:
            if 'Raw_Read_Error_Rate' in line:
                line = line.split()
                if int(line[9]) < RRER and datafile == 'diskOne.txt':
                    log.write("Raw_Read_Error_Rate SMART parameter is: %s. Value under threshold. DISK ONE OK!\r\n" %int(line[9]))
                elif int(line[9]) < RRER and datafile == 'diskTwo.txt':
                    log.write("Raw_Read_Error_Rate SMART parameter is: %s. Value under threshold. DISK TWO OK!\r\n" %int(line[9]))
                else:
                    print 'FAILED'
                    log.write("WARNING: Raw_Read_Error_Rate SMART parameter is: %s. Value over threshold!\r\n" %int(line[9]))
                    rcode = mbox(u'Attention!', u'One or more hardrives may need replacement.', 0x30)

这就是我调用这个函数的方式:

dataOne = diskOne()
smartTest(log, dataOne)
print 'Disk One Done'

diskOne()看起来像这样:

def diskOne():
    if os.path.exists(r"C:\Dejero\HDD Guardian 0.6.1\Smartctl"):
        os.chdir(r"C:\Dejero\HDD Guardian 0.6.1\Smartctl")
        os.system("Smartctl -a /dev/csmi0,0 > C:\Dejero\Installation-Scripts\diskOne.txt")
        # Store file in variable
        os.chdir(r"C:\Dejero\Installation-Scripts")
        datafile = open('diskOne.txt', 'rb')
        return datafile
    else:
        log.write('Smart utility not found.\r\n')

我曾尝试在谷歌上搜索与我类似的问题,但没有找到。我尝试将第一个 for 循环移至diskOne()但出现同样的问题。没有语法错误,我只是目前无法看到问题。


它不会跳过你的第二个循环。你需要seek位置回来了。这是因为读取文件后,文件偏移量将被放置在文件的末尾,因此您需要将其放回开头。这可以通过添加一行轻松完成

datafile.seek(0);

在第二次循环之前。

Ref: 文档

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

读取文件时脚本跳过第二个 for 循环 的相关文章

  • Python getstatusoutput 替换不返回完整输出

    我发现了这个很棒的替代品getstatusoutput Python 2 中的函数在 Unix 和 Windows 上同样有效 不过我觉得这个方法有问题output被构建 它只返回输出的最后一行 但我不明白为什么 任何帮助都是极好的 def
  • 独立滚动矩阵的行

    我有一个矩阵 准确地说 是 2d numpy ndarray A np array 4 0 0 1 2 3 0 0 5 我想滚动每一行A根据另一个数组中的滚动值独立地 r np array 2 0 1 也就是说 我想这样做 print np
  • 我可以在我的机器上同时安装 python 2.7 和 3.5 的tensorflow吗?

    目前我通过 Anaconda 在我的机器 MAC OX 上安装了 Python 2 7 Python 3 5 Tensorflow for Python 3 5 我也想在我的机器上安装 Tensorflow for Python 2 7 当
  • 立体太阳图 matplotlib 极坐标图 python

    我正在尝试创建一个与以下类似的简单的立体太阳路径图 http wiki naturalfrequent com wiki Sun Path Diagram http wiki naturalfrequency com wiki Sun Pa
  • YOLOv8获取预测边界框

    我想将 OpenCV 与 YOLOv8 集成ultralytics 所以我想从模型预测中获取边界框坐标 我该怎么做呢 from ultralytics import YOLO import cv2 model YOLO yolov8n pt
  • 在Python中连接反斜杠

    我是 python 新手 所以如果这听起来很简单 请原谅我 我想加入一些变量来生成一条路径 像这样 AAAABBBBCCCC 2 2014 04 2014 04 01 csv Id TypeOfMachine year month year
  • 如何将张量流模型部署到azure ml工作台

    我在用Azure ML Workbench执行二元分类 到目前为止 一切正常 我有很好的准确性 我想将模型部署为用于推理的 Web 服务 我真的不知道从哪里开始 azure 提供了这个doc https learn microsoft co
  • datetime.datetime.now() 返回旧值

    我正在通过匹配日期查找 python 中的数据存储条目 我想要的是每天选择 今天 的条目 但由于某种原因 当我将代码上传到 gae 服务器时 它只能工作一天 第二天它仍然返回相同的值 例如当我上传代码并在 07 01 2014 执行它时 它
  • 从Python中的字典列表中查找特定值

    我的字典列表中有以下数据 data I versicolor 0 Sepal Length 7 9 I setosa 0 I virginica 1 I versicolor 0 I setosa 1 I virginica 0 Sepal
  • “隐藏”内置类对象、函数、代码等的名称和性质[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我很好奇模块中存在的类builtins无法直接访问的 例如 type lambda 0 name function of module
  • 如何使用python在一个文件中写入多行

    如果我知道要写多少行 我就知道如何将多行写入一个文件 但是 当我想写多行时 问题就出现了 但是 我不知道它们会是多少 我正在开发一个应用程序 它从网站上抓取并将结果的链接存储在文本文件中 但是 我们不知道它会回复多少行 我的代码现在如下 r
  • Numpy - 根据表示一维的坐标向量的条件替换数组中的值

    我有一个data多维数组 最后一个是距离 另一方面 我有距离向量r 例如 Data np ones 20 30 100 r np linspace 10 50 100 最后 我还有一个临界距离值列表 称为r0 使得 r0 shape Dat
  • Cython 和类的构造函数

    我对 Cython 使用默认构造函数有疑问 我的 C 类 Node 如下 Node h class Node public Node std cerr lt lt calling no arg constructor lt lt std e
  • 根据列 value_counts 过滤数据框(pandas)

    我是第一次尝试熊猫 我有一个包含两列的数据框 user id and string 每个 user id 可能有多个字符串 因此会多次出现在数据帧中 我想从中导出另一个数据框 一个只有那些user ids列出至少有 2 个或更多string
  • python import inside函数隐藏现有变量

    我在我正在处理的多子模块项目中遇到了一个奇怪的 UnboundLocalError 分配之前引用的局部变量 问题 并将其精简为这个片段 使用标准库中的日志记录模块 import logging def foo logging info fo
  • 使用for循环时如何获取前一个元素? [复制]

    这个问题在这里已经有答案了 可能的重复 Python 循环内的上一个和下一个值 https stackoverflow com questions 1011938 python previous and next values inside
  • Django-tables2 列总计

    我正在尝试使用此总结列中的所有值文档 https github com bradleyayers django tables2 blob master docs pages column headers and footers rst 但页
  • Pandas 每周计算重复值

    我有一个Dataframe包含按周分组的日期和 ID df date id 2022 02 07 1 3 5 4 2022 02 14 2 1 3 2022 02 21 9 10 1 2022 05 16 我想计算每周有多少 id 与上周重
  • 在 JavaScript 函数的 Django 模板中转义字符串参数

    我有一个 JavaScript 函数 它返回一组对象 return Func id name 例如 我在传递包含引号的字符串时遇到问题 Dr Seuss ABC BOOk 是无效语法 I tried name safe 但无济于事 有什么解
  • 使用随机放置的 NaN 创建示例 numpy 数组

    出于测试目的 我想创建一个M by Nnumpy 数组与c随机放置的 NaN import numpy as np M 10 N 5 c 15 A np random randn M N A mask np nan 我在创建时遇到问题mas

随机推荐

  • 使用服务器“不兼容的魔法值 1013478509”启动时 java 小程序失败

    我的小程序有问题 我有一个学校项目 我要制作一款乒乓在线游戏 它离线运行良好 但当我尝试从服务器加载它时 我只是得到一个空框架 其中有红色文本 当我单击文本时 我收到消息 不兼容的魔法值 1013478509 我正在使用 jetty all
  • 如何在 python pandas 中转换时间列并查找具有条件的时间增量

    我有一个非空对象的时间列 我无法将其转换为 timedelta 或 datetime Time msg 12 29 36 306000 Setup 12 29 36 507000 Alerting 12 29 38 207000 Servi
  • TSQL Msg 1013“使用相关名称来区分它们。”

    我看了很多建议 在过去的两个小时里不知道如何解决这个问题 SET DATEFORMAT DMY DECLARE Source DATETIME 01 01 2001 DECLARE Destenaition DATETIME 01 01 2
  • Java 中的链接方法很慢吗?

    假设我有一个对象A哪个可以调用getB call getC call getD 调用 doSomething 现在我想使用一些方法D在我的应用程序中多次 即 A getB getC getD doSomething1 A getB getC
  • 如何在Java中打开txt文件并读取数字

    如何打开 txt 文件并将由输入或空格分隔的数字读取到数组列表中 读取文件 将每一行解析为一个整数并存储到一个列表中 List
  • 如何更改 stderr 中的 java 日志记录控制台输出以使其脱颖而出?

    我正在使用标准ConsoleHandler from java util logging默认情况下 控制台输出定向到错误流 即System err 如何将控制台输出更改为输出流 即System out 我已经到达 SimpleFormatt
  • 当 JsonConstructor 参数名称与 JSON 不匹配时如何抛出异常?

    我正在反序列化一堆 C 只读结构 它们的构造函数标记为 JsonConstructor 如果我收到的任何 JSON 格式错误 我会尝试尽早失败 不幸的是 如果构造函数参数和输入 JSON 之间存在命名差异 则该参数只会被分配一个默认值 有没
  • 如何将调试器附加到 Web 服务?

    我正在使用网络服务 谁能告诉我如何调试它 附加到正在执行应用程序池的 w3wp exe 实例
  • 发布管道无权执行操作“Microsoft.Web/sites/config/list/action”

    我有一个 DevOps 发布管道 通过虚拟机上的 CLI 愉快地推送到开发资源组 当我添加一个阶段推送到相同的 QA 资源组时 我得到以下结果 错误 AuthorizationFailed 对象 ID 为 的客户端 无权在范围 subscr
  • 在jQuery中,如何高效地添加大量元素?

    我目前有真值表生成器的草图 虽然它工作得很好 但速度相当慢 我添加到的每个布尔值组合 table 使用 jQuery 对于每个值 有一个 td 元素由 jQuery 创建 然后添加到 table 此外 我使用 jQuery UI 来制作漂亮
  • 如何知道堆栈函数消耗了多少?

    最近 我在采访中遇到了这样一个问题 我们如何确定特定函数消耗了多少堆栈存储空间 众所周知 堆栈 是平台的实现细节 无法从语言本身内部检查或以任何方式查询 本质上不可能保证 C 或 C 程序的任何部分是否可以进行另一个函数调用 堆栈大小 或者
  • 如何理解“warp 中的所有线程同时执行相同的指令”。在 GPU 中?

    我在读专业CUDA C编程 并在GPU 架构概述部分 CUDA 采用单指令多线程 SIMT 架构来管理和执行 32 个线程组 称为 warp warp 中的所有线程同时执行相同的指令 每个线程都有自己的指令地址计数器和寄存器状态 并根据自己
  • 如何复制 Xcode 项目来创建免费应用程序的付费版本

    我有一个免费的应用程序 我想制作一个付费版本 我尝试创建一个新项目并将类复制到其中 但不是很简单 有没有更简单的方法呢 我复制了目标 但是我可以通过什么方式在一个目标上设置指定的代码 并在另一个目标上设置另一个代码 你能帮助我吗 Paul
  • 如何获取邮政编码的纬度和经度?

    我需要一些帮助来动态获取用户输入的邮政编码的纬度和经度 这样我就可以在邮政编码的这些区域显示商店地址 谷歌正在运行某种地理编码 你应该检查一下 它可能对你有帮助http code google com apis maps documenta
  • Node.js - MySQL 中的“PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR”

    我正在尝试编写一个Node Express来提供REST服务 应用程序启动时一切顺利 然而 几个小时后 我收到一个错误 code PROTOCOL ENQUEUE AFTER FATAL ERROR fatal false 看来有些资源即将
  • 给定 n,对 n 的数字求和。如果该值超过一位数,则继续减少产生一位数

    def digital root n x str n while len x 0 and len x 1 r 0 for i in range len x r r int x i x str r return r 数字根是数字中所有数字的递
  • Spark MapReduce 中的意外结果

    我是 Spark 新手 想了解 MapReduce 是如何在幕后完成的 以确保我正确使用它 这个帖子提供了一个很好的答案 但我的结果似乎不符合所描述的逻辑 我正在运行Spark 快速入门Scala 命令行指南 当我正确地添加行长度时 结果就
  • 类助手不会覆盖祖先的虚拟方法

    我一直将类助手理解为扩展类或部分类 它们的作用就像原始基类代码的扩展 如果我复制代码的接口部分并将其添加到基类中 并在实现中也这样做 那么代码的运行方式将与助手的运行方式完全相同 这让我始终了解助手中的多态性以及为什么它们不能重写基类中的方
  • Facebook 的通知(数据库实现)

    我想知道 Facebook 如何实现他们的通知系统 因为我想做类似的事情 FooBar 评论了你的状态 Red1 Green2 和 Blue3 对您的照片发表了评论 MegaMan 和其他 5 人评论了您的活动 我无法将多个通知写入单个记录
  • 读取文件时脚本跳过第二个 for 循环

    我正在尝试读取日志文件并将某些值与预设阈值进行比较 我的代码设法记录第一个的原始数据for在我的函数中循环 我添加了打印语句来尝试弄清楚发生了什么 并且我成功地推断出我的第二个 for 循环从未 发生 这是我的代码 def smartTes