Python-从多个文件中读取

Esa*_*san 5 python file

我有125个数据文件,包含两列和21行数据.请看下面的图片:

在此输入图像描述

我想将它们导入一个.csv文件(250列和21行).

我对python相当新,但这是我所建议的,代码明智的:

import glob
Results = [open(f) for f in glob.glob("*.data")] 
fout = open("res.csv", 'w')

for row in range(21):
 for f in Results:
  fout.write( f.readline().strip() ) 
  fout.write(',')
 fout.write('\n')
fout.close()
Run Code Online (Sandbox Code Playgroud)

但是,代码存在轻微问题,因为我只获得125列(即,力和位移列写在一列中)请参考下图: 在此输入图像描述

在此输入图像描述

如果有人能帮助我,我将非常感激!

Lau*_*low 8

import glob
results = [open(f) for f in glob.glob("*.data")]
sep = ","
# Uncomment if your Excel formats decimal numbers like 3,14 instead of 3.14
# sep = ";"

with open("res.csv", 'w') as fout:
    for row in range(21):
        iterator = (f.readline().strip().replace("\t", sep) for f in results)
        line = sep.join(iterator)
        fout.write("{0}\n".format(line))
Run Code Online (Sandbox Code Playgroud)

因此,为了解释代码出了什么问题,源文件使用tab作为字段分隔符,但是您的代码使用逗号将它从这些文件中读取的行分开.如果您的Excel使用句点作为小数分隔符,则它使用逗号作为默认字段分隔符.除非用引号括起来,否则忽略空格,你会看到结果.

如果您使用Excel的文本导入功能(数据功能区=>从文本),您可以要求它将逗号制表符视为有效的字段分隔符,然后我很确定您的原始输出也会起作用.

相反,上面的代码应该生成一个双击时可以正确打开的文件.