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