【问题标题】:Printing delimitated string from text file从文本文件打印分隔字符串
【发布时间】:2019-04-28 22:40:15
【问题描述】:

我正在尝试制作一个简单的程序,该程序将文本文件作为输入,然后从文件中打印出五天的温度预测。我无法从分隔字符串中获取要打印的正确值。有什么想法我在这里出错了吗?我的输出附在下面。

print("File:")
f = input()
a = open(f, 'r')
b = a.read()
c = b.split(',')
a.close()
count = 1 
for i in c:
    print("Day {}: {}".format(count, c))
    count = count + 1

【问题讨论】:

  • How to Ask。请展示这些文件的示例。
  • 文件看起来像 45, 65, 70, 23, 12
  • @liam12808 粘贴文件的内容。
  • 我无权访问该文件,它是我使用的在线教科书每次运行代码时生成的,但这是每个测试文件的格式

标签: python python-3.x text printing delimiter


【解决方案1】:

.close() 应该用在文件对象上。

你应该使用 a.close() 来关闭文件。

b 是在 a 对象(您的文件)上执行的“read()”生成的字符串

一旦您解决了该问题,如果您的程序按预期运行,您可以继续尝试。

编辑:

既然你已经解决了这个问题,我认为你应该研究其他一些事情。

在您的打印语句中,您输出 c 数组,该数组来自于拆分文件的第一行,并且只有第一行。您没有遍历文件行。这就是为什么您总是得到与每天的输出相同的数组。

如果您的目标是每天打印一个数字,那么您的代码应该是:

for i in c:
    print("Day {}: {}".format(count, i))
    count = count + 1

如果您的目标是对文件中的每一行重复此过程,那么您应该执行以下操作:

for line in f:
    #your code

【讨论】:

  • 即使在更改之后仍然给我一个错误。我已经用新的错误更新了原始帖子
  • “仍然给我一个错误”你的意思是它没有返回你所期望的或者像第一次那样抛出异常吗?另外:在您的文件中,您有一个数字(温度)。你在哪里区分日子?
  • 文件中没有给出日期,文件中只包含5个用逗号分隔的温度。现在它正在打印整行而不是正确的温度
  • 我编辑了我的答案。希望我能以某种方式帮助你,但我很难理解你想要做什么。您描述输入文件的方式与您在屏幕截图上的内容不符,我很难为您提供帮助。
  • 您的第一个解决方案是正确的。我本来会更具体,但检查我的代码的在线教科书非常混乱,所以我什至不知道我有一半时间要做什么
猜你喜欢
  • 2012-11-05
  • 2011-07-10
  • 1970-01-01
  • 1970-01-01
  • 2021-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多