【问题标题】:How to add parts of lines from text files如何从文本文件中添加部分行
【发布时间】:2015-03-18 17:16:05
【问题描述】:

在这个特定问题中我被要求做的是从文本文件(天气数据)中删除值,我可以这样做,然后将每行的数字 24-26 相加(在天气数据中,数字 24- 27 代表当天的总降水量)。这是我到目前为止所拥有的。

inputFilename="weather.dat"
inputFile=open(inputFilename, "r")
for line in inputFile:
    line=line.strip()
    for item in line:
        q=0
        q=int(line[24:27])
        total=q+q
print("total precipitation: ",total)

我绝不是专家。运行此程序后,我得到了 1120 的答案,当我应该得到 3164 的答案时,我真的想不出从这里去哪里。

【问题讨论】:

  • 在此处发布您的文本文件的 sn-p
  • 035.5954-082.5568201001413059010000682.1
  • 那是一行。大约还有 8 行相同,只是数字不同。

标签: python file text


【解决方案1】:

line[24:27] 表示 三个 字符,即索引 24、25 和 26 处的字符。在 Python 中,“排除右侧边界”是常态。

“数字 24-27”是什么意思不是很清楚(包括或不包括上限?IOW,是三个字符还是四个?)但如果您的意思是“包括上限”,只需更改切片到line[24:28]

【讨论】:

  • 另一个问题是,如果 digits 24-27 OP 从零或 1 开始计数 :)
【解决方案2】:

看起来您正在循环中定义total=q+q。这将一遍又一遍地将每一行的值(实际上是值的两倍)分配给total,而不是保持运行总计。

此外,我不确定我是否理解您为什么要这样做for item in line。这将遍历每行中的每个字符。如果您知道 precip 将位于line[24:27],那么您可以遍历每一行并添加这些数量,而不是遍历每一行然后遍历每个字符。它会不必要地重复工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-28
    • 1970-01-01
    • 1970-01-01
    • 2017-07-03
    • 1970-01-01
    相关资源
    最近更新 更多