从文本文件的头行提取尺寸

时间:2017-07-27 04:24:34

标签: python numpy

请参阅以下附图,显示文本文件的格式。我需要提取文件中第一行所指示的数据矩阵的尺寸,这里是49 * 70 * 1,用于图像所示的情况。请注意,名称“gd_fac”的长度可以变化。如何将这些数字提取为整数?我使用的是Python 3.6。

Text file

3 个答案:

答案 0 :(得分:1)

规格不是很清楚。我假设你想要的信息总是在第一行,并且总是在括号中。之后:

with open(filename) as infile:
    line = infile.readline()
    string = line[line.find('(')+1:line.find(')')]
    lst = string.split('x')

这将创建列表lst = [49, 70, 1]

这里发生了什么: 首先,我打开文件(您需要将filename替换为文件名,作为字符串。with ... as ...结构确保文件在使用后关闭。然后我读取第一行。在那之后。我只选择在开放的paren (之后和关闭的paren )之前的那一行的部分。最后,我将字符串分成几部分,其中包含字符{{1}作为分隔符。这将创建一个列表,其中包含文件第一行中的值,它们位于括号之间,并由x分隔。

答案 1 :(得分:0)

它的作用是寻找" gd_fac" 然后,如果它删除所有不需要的东西,并用你想要的东西替换它。

rootfolder = "c:\test1"
Dim root As String() = Directory.GetDirectories(rootfolder)

输出:" 49x70x1"

答案 2 :(得分:0)

由于您已经提到“gd_fac”的长度可变,因此最佳解决方案是使用正则表达式。

import re
with open("a.txt") as fh:
    for line in fh:
        if '(' in line and ')' in line:
            dimension =  re.findall(r'.*\((.*)\)',line)[0]
            break
print dimension

<强>输出:

'49x70x1'