我有一个存储在文本文件中的矩阵:
(i, j) count
我需要搜索对(i,j)。我该怎么做?
with open("matrix.txt","r") as searchmat:
for line in searchmat:
word=str((x,y))
if word in line:
t=line.split('\t')
f=t[1]
return f
我为所有值获得 NONE 。
答案 0 :(得分:1)
代码看起来很好(假设你的缩进正确)。可能您的数据文件格式存在问题。或许分隔符中有多个制表符?请尝试使用t=line.split()
。
答案 1 :(得分:0)
看起来你搞砸了缩进。通过查看你(我假设)粘贴在这里的代码,看起来你有混合标签和空格,Python绝对不喜欢。用空格替换文件中的所有选项卡,并缩进代码,使其如下所示:
with open("matrix.txt","r") as searchmat:
for line in searchmat:
word=str((x,y))
if word in line:
t=line.split('\t')
f=t[1]
return f
答案 2 :(得分:0)
这可能会有所帮助:
def reader(path):
import re
pattern = re.compile("^\((\d*), (\d*)\).*$")
with open(path) as searchmat:
for line in searchmat:
print re.match(pattern, line).group(1, 2) # print both raw groups
print int(re.match(pattern, line).group(1)) # first number as int
print int(re.match(pattern, line).group(2)) # second number as int
它遍历path
给出的文件,并在每一行中查找您描述的模式。