试图让我的程序从一个文件中将行分成3行,然后应用“if row1==x:”来添加到现有的类。现在这不是我的问题,我让它工作,除了当第1行是''。所以我试着把输入文件改成“”,然后改成“*”,再改成“k”(以此类推),什么都没用。 问题是,输入文件中的大多数行都读取:1234565、'streetadress1'、'streetadress2',但对于某些行,没有streetadress1,只有'。但是程序在识别号码或“streetaddress2”时没有问题
class adress(object):
def __init__(self,street,ykord,xkord):
self.street = street
self.ykord = ykord
self.xkord = xkord
self.connected = []
self.anlid = []
self.distances = []
self.parent = []
self.child =[]
def set_connections(self):
input_file = open("kopplingar2.txt")
temp = input_file.read().splitlines()
for l in temp:
row = l.split(',')
identity = row[0]
streetA = row[1]
streetB = row[2]
if streetA == self.street:
diction = {'street':streetB, 'identity':identity}
self.child.append(diction)
elif streetA == '':
self.anlid.append(identity)
print 'poop!'
elif streetB == self.street and streetA != '':
diction = {'street':streetA, 'identity':identity}
self.parent.append(diction)
print streetA
“打印便便”只是为了看看它是否曾经发生过,但事实并非如此。结果应该是大约400行poop,因为inputfile中大约75%的行包含“”
我不知道为什么它适用于其他行,但不适用于行1(除了它有时是“”而不是完整的字符串)
“”是Python中的空字符串。如果需要将值与由两个撇号字符组成的字符串进行比较,则需要编写
streetA = "''"
正如@yole所说,您需要与
"''"
进行比较,例如,如果文件中的一行是123,'','streetB'
,那么l
将是"123,'','streetB'"
,您得到的是相关问题 更多 >
编程相关推荐