我是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)。应该是这样的:
  • 第2列(第2列)=第2列(第1列)-第1列(第1列)
  • 第3行(第2列)=第3行(第1列)-第2行(第1列),依此类推。

  • 让我向您展示输出文件应如何:
             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/

    10-14 18:22
    查看更多