Mov*_*ton 5 python numpy python-2.7 python-3.x
我是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
Run Code Online (Sandbox Code Playgroud)
*此处添加了带行的列,以简化说明.
我需要计算从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
Run Code Online (Sandbox Code Playgroud)
现在我只在这里编程:
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])
Run Code Online (Sandbox Code Playgroud)
我不知道接下来该做什么.也许,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()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
847 次 |
最近记录: |