【问题标题】:How to import and write text in a for cycle如何在for循环中导入和写入文本
【发布时间】:2018-03-31 16:57:06
【问题描述】:

我有以下代码:

dat11=np.genfromtxt('errors11.txt') 
dat12=np.genfromtxt('errors12.txt') 
dat13=np.genfromtxt('errors13.txt') 
dat22=np.genfromtxt('errors22.txt') 
dat23=np.genfromtxt('errors23.txt') 
dat33=np.genfromtxt('errors33.txt')

zip(dat11,dat12,dat13,dat22,dat23,dat33)
import csv
with open('Allerrors.txt', "w+") as output:
    writer = csv.writer(output, delimiter='\t')
    writer.writerows(zip(dat11,dat12,dat13,dat22,dat23,dat33))
quit

每个“errorsxy.txt”文件都包含一列数字。使用这个程序,我创建了“Allerrors.txt”文件,所有这些列是否都紧挨着其他列。我需要用 for 循环(或任何其他类型的循环)来做同样的事情,因为我实际上会有更多的文件而且我不能手动完成。但我不知道如何用循环编写这些各种 datxy。我尝试了(对于代码的第一部分):

for x in range(1,Nbin+1):
    for y in range(1,Nbin+1):
        'dat'+str(x)+str(y)=np.genfromtxt('errors'+str(x)+str(y)+'.txt')

但我当然会收到以下错误:

SyntaxError: can't assign to operator

我明白为什么会出现此错误,但我找不到任何其他方式来编写它。另外,我不知道如何编写代码的第二部分。 我正在使用 Python 2.7 任何人都可以帮助我吗?

【问题讨论】:

    标签: python python-2.7 loops for-loop genfromtxt


    【解决方案1】:

    您可以将每个读入的文件附加到一个列表中,然后在 for 循环运行后压缩并打印该列表,而不是为每个数据文件创建单独的变量。

    errorfiles = []
    for x in range(1,Nbin+1):
        for y in range(1,Nbin+1):
            dat=np.genfromtxt('errors'+str(x)+str(y)+'.txt’)
            errorfiles.append(dat)
    

    【讨论】:

      猜你喜欢
      • 2012-06-27
      • 2018-01-12
      • 2016-09-30
      • 1970-01-01
      • 2011-10-25
      • 2021-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多