我有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列(即,力和位移列写在一列中)请参考下图:


如果有人能帮助我,我将非常感激!
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的文本导入功能(数据功能区=>从文本),您可以要求它将逗号和制表符视为有效的字段分隔符,然后我很确定您的原始输出也会起作用.
相反,上面的代码应该生成一个双击时可以正确打开的文件.