Python 3.x 使用具有特定格式的文件夹中的文本文件创建表

Python 3.x 使用具有特定格式的文件夹中的文本文件创建表,python-3.x,Python 3.x,我正试图写一个程序,将所有的.txt文件在一个文件夹,并附加到一个大表中。包含这些文件的文件夹将它们按数字顺序从最小到最大排列,这也是我希望最终结果的方式,因为我正在尝试使用该表制作颜色贴图。问题是,它必须始终添加第一个文件的两列,然后再添加每个文件的第二列。这是因为第一列是频率,每个文件的频率相同,只有振幅变化 这些文件的结构如下: File1.txt = File1[0] File1[1] freq amp freq a

我正试图写一个程序,将所有的.txt文件在一个文件夹,并附加到一个大表中。包含这些文件的文件夹将它们按数字顺序从最小到最大排列,这也是我希望最终结果的方式,因为我正在尝试使用该表制作颜色贴图。问题是,它必须始终添加第一个文件的两列,然后再添加每个文件的第二列。这是因为第一列是频率,每个文件的频率相同,只有振幅变化

这些文件的结构如下:

File1.txt = File1[0] File1[1]
             freq      amp
             freq      amp
              .         .
              .         .
             freq      amp
我希望我的最终结果如下:

Table.txt = File1[0] File1[1] File2[1] File3[1] ... File(n)[1]
             freq      amp      amp      amp           amp
             freq      amp      amp      amp           amp
             freq      amp      amp      amp           amp
如果有任何滥用符号的情况,请提前道歉,我正在学习python,因为我正在进行我的研究

到目前为止,我的代码是

import numpy as np
import scipy as sp
import os, glob, _thread, re, time, argparse

## Get path
parser = argparse.ArgumentParser(description = '')
parser.add_argument('directory', nargs = '?', action = 'store',
                default = os.curdir, help = 'Directory containing data')
results = parser.parse_args()
path = results.directory

## Regex for files
matchThis = '(\d+)\.(\d)([a-z][A-Z])\.(txt)'

## Coulmn from which data is used, MuMax = 1 : Daq = varies on output 
col = 1

########

def main():
    #Get file names of all files in current folder
    datafilesName = glob.glob(os.path.join(path, "*.txt"))
    #Sort the list according to numbers in "matchThis"
    datafilesName.sort(key = numkeys)

    outputM = open('..\output_matrix.txt','wb')
    first = True

    M = []

    for file in datafilesName:
            print(file)
            data = np.loadtxt(file, usecols = (0,col), unpack = True)


            newData = np.array(data[1])
            if first:
                    M.append(data[0])
                    M.append(newData)
            else:
                    M.append(newData)
            first = False

    np.savetxt(outputM, np.transpose(M))
    outputM.close()

    return

########

def numkeys(text):
    return [item for item in re.findall(matchThis,text) ]


if __name__ == '__main__':
    main()

你的问题(问题陈述)对我来说有点模糊。您是否有任何代码可以演示如何开始或解决此问题?我刚刚编辑了问题以包含我的代码,很抱歉没有将其放在第一位。很酷,无需担心,谢谢您使用代码进行更新。其中有什么能/不能实现你的目标?看起来应该差不多完成了。@downshift我解决了我的问题,numkeys定义中的浮点转换就是我一直遇到的错误。不再为我编写深夜代码:)事实证明,我的代码没有按预期工作,无法使文件保持有序,我不知道为什么。你的问题(问题陈述)对我来说有点含糊不清。您是否有任何代码可以演示如何开始或解决此问题?我刚刚编辑了问题以包含我的代码,很抱歉没有将其放在第一位。很酷,无需担心,谢谢您使用代码进行更新。其中有什么能/不能实现你的目标?看起来应该差不多完成了。@downshift我解决了我的问题,numkeys定义中的浮点转换就是我一直遇到的错误。不再为我编写深夜代码:)事实证明,我的代码没有按预期工作,无法保持文件的组织,我不知道为什么。