在python中使用不同格式从多个源创建列数据

时间:2013-12-03 03:54:15

标签: python

因此,作为我的代码的一部分,我正在读取具有不同名称的文件路径,但往往坚持以下格式

p(number)_(temperature)C

我对这些路径所做的是将它分成2列(以及另外2列包含实际数据),所以我最终得到一行如下所示:

p2       18     some number     some number

但是,我发现了一些使用以下格式的文件夹:

p(number number)_(temperature)C

就目前而言,对于第一种情况,我使用以下代码将文件路径分成适当的列:

def finale():
    for root, dirs, files in os.walk('/Users/Bashe/Desktop/12/'):
        file_name = os.path.join(root,"Graph_Info.txt")
        file_name_out = os.path.join(root,"Graph.txt")
        file = os.path.join(root, "StDev.txt")
        if os.path.exists(os.path.join(root,"Graph_Info.txt")):
            with open(file_name) as fh, open(file) as th, open(file_name_out,"w") as fh_out:
                    first_line = fh.readline()
                    values = eval(first_line)
                    for value, line in zip(values, fh):
                        first_column = value[0:2]
                        second_column = value[3:5]
                        third_column = line.strip()
                        fourth_column = th.readline().strip()
                        fh_out.write("%s\t%s\t%s\t%s\n" % (first_column, second_column, third_column, fourth_column))
        else:
            pass

我玩过一些东西,发现如果我做了以下更改,程序就能正常运行。

first_column = value[0:3]
second_column = value[4:6]

有没有办法让程序查看并查看文件路径是什么,并采取相应的行动?

2 个答案:

答案 0 :(得分:0)

欢迎来到神奇主义的美妙世界。

import re


#..........
#case 0
if re.match(r"p\(\d+\).*", path) :
      #stuff
#case 1
elif re.match(r"p\(\d+\s\d+\).*", path):
      #other stuff

答案 1 :(得分:0)

>>> for line in s.splitlines():
...    first,second = re.search("p([0-9 ]+)_(\d+)C",line).groups()
...    print first, " +",second
...
22  + 66
33 44  + 44
23 33  + 22