我是Python的初学者,无法应付我的项目中的某些时刻,因此,很高兴您能为我提供帮助:)
想象一下,我有一个* .txt文件,其中只有一栏看起来像:
Column-1
row-1 0
row-2 25.00
row-3 27.14
row-4 29.29
row-5 31.43
row-6 33.57
*此处添加了带有行的列,只是为了简化说明。
我需要计算第二列,该列将从Column-1中获取输入数据,并输出从上一个中减去该行值的结果(如果row-1(Column-1)值为0,则应该为在第1行(第2列)中也为0)。应该是这样的:
让我向您展示输出文件应如何:
Column-1 Column-2
row-1 0 0
row-2 25.00 25.00
row-3 27.14 2.14
row-4 29.29 2.15
row-5 31.50 2.21
row-6 33.57 2.07
现在,我只在这里进行编程:
import sys
with open('file.txt', "r") as f:
sys.stdout = open('%s (calc).txt' % f.name, 'a')
for line in f:
column = line.strip().split()
Column_1 = float(column[0])
column.extend([None])
我想知道下一步该怎么做。也许numpy适合执行此任务?我不擅长(基本上我一点都不了解),我应该学习吗?
无论如何,我将非常感谢您的贡献。
最佳答案
我相信这会满足您的要求:
INPUT = 'file.txt'
OUTPUT = 'calc.txt'
def main():
with open(INPUT, 'r') as reader, open(OUTPUT, 'a') as writer:
last_value = 0
for line in reader:
column_1, *remaining_columns = map(float, line.split())
column_2 = column_1 - last_value
last_value = column_1
print(column_1, column_2, sep='\t', file=writer)
if __name__ == '__main__':
main()
关于Python-从文件中的第一列计算第二列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32504143/