我试图从一个文件中提取数字,给它们分配一个变量名,对这个变量做一些数学运算,然后写入文件的下一行。例如,如果我有一个包含:1 2 3 4 5的文件,下面是我目前为止的缩写代码(Python3.3)。我唯一的问题是把计算结果写在下一行。提前谢谢你的帮助。在
with open('test.txt', 'r') as f:
read_data = f.read()
a1 = (read_data[0])`a1 = (read_data[0])
print(a1) # this is just a test to see whats happening
f.close()
with open('test.txt','w') as f:
f.write(a1) #how do I get a1 to write on the next line of the file
exit()
假设您的输入文件看起来像
,以下代码起作用:
^{pr2}$编辑:您还可以将
f.write("%s\n" % ''.join(element))
替换为f.write(element+'\n')
,并按照@Torxed的建议删除f.close()。在另外请注意,我遗漏了}。在
f.close()
,因为您不需要它。忘记它的名称(上下文管理器旁边的另一个花哨的词),但是
with
是一个自动结束语句,每当您离开块f
时,Python会自动调用{既然你没有写下你想做什么样的计算,下面是一个虚构的例子:
^{pr2}$另外,从下一行提到的示例中阅读,但是您没有指定数据是否已经被行分隔,因此从djas得到的答案可以合并为:
with open
自动关闭文件,因此您可以在with open
语句中执行程序的主逻辑。例如,此程序将执行您需要的操作:如果只有一行,则可以消除
for line in lines:
循环并直接修改文件。在另一方面,如果您希望这是一个迭代过程,如其中一个问题的注释所示,也就是说,您希望新的第二行成为新的第一行,依此类推,您可以将上面的内容放在某个函数中,如下所示:
^{pr2}$相关问题 更多 >
编程相关推荐