我有一个.txt文件,我只想在数组中保存以下字符“ N”,“ 1.1”,“ XY”,“ N”,“ 2.3”,“ xz”。.txt文件如下所示:
[ TITLE
N 1.1 XY
N 2.3 XZ
]
这是我的代码:
src = open("In.txt", "r")
def findOp (row):
trig = False
temp = ["", "", ""]
i = 1
n = 0
for char in row:
i += 1
if (char != '\t') & (char != ' ') & (char != '\n'):
trig = True
temp[n] += char
else:
if trig:
n += 1
trig = False
return temp
for line in src.readlines():
print(findOp(line))
我的代码输出为:
['[', 'TITLE', '']
['', '', '']
['N', '1.1', 'XY']
['N', '2.3', 'XZ']
['', '', '']
[']', '', '']
问题是程序还将空格字符保存在我不想要的数组中。
您可以在退出之前检查返回数组:
def findOp(row):
trig = False
temp = ["", "", ""]
i = 1
n = 0
for char in row:
i += 1
if (char != '\t') & (char != ' ') & (char != '\n'):
trig = True
temp[n] += char
else:
if trig:
n += 1
trig = False
# Will return `temp` if all elements eval to True otherwise
# it will return None
return temp if all(temp) else None
None
然后可以将该值用作后续构造中的检查条件:
for line in src.readlines():
out = findOp(line)
if out:
print(out)
>> ['N', '1.1', 'XY']
>> ['N', '2.3', 'XZ']
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句