Python 如果x=='';读取文件时不会注册
试图让我的程序从一个文件中将行拆分为3行,然后应用“if row1==x:”来添加到现有类。现在这不是我的问题,我已经让它工作了,除了第1行是“”。因此,我尝试将输入文件更改为“”,然后更改为“*”,再更改为“k”(依此类推),但没有任何效果。 问题是,输入文件中的大多数行读取:1234565、'StreetAddress1'、'StreetAddress2',但对于某些行,没有StreetAddress1,只有'。但该程序在识别号码或“StreetAddress2”方面没有问题Python 如果x=='';读取文件时不会注册,python,Python,试图让我的程序从一个文件中将行拆分为3行,然后应用“if row1==x:”来添加到现有类。现在这不是我的问题,我已经让它工作了,除了第1行是“”。因此,我尝试将输入文件更改为“”,然后更改为“*”,再更改为“k”(依此类推),但没有任何效果。 问题是,输入文件中的大多数行读取:1234565、'StreetAddress1'、'StreetAddress2',但对于某些行,没有StreetAddress1,只有'。但该程序在识别号码或“StreetAddress2”方面没有问题 class a
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”,“streetB”,则l
将是“123”,“streetB”
您得到的是
>>> l="123,'','streetB'"
>>> l.split(',')
['123', "''", "'streetB'"]
>>>
在你的描述中,当你说,row1是“”
,这是指row1是空的还是它只有两个单引号?它只有两个单引号,所以它不是一个空白输入,它的“”作为输入。煎饼上的垃圾我很笨,我知道这就是为什么我用“”而不是“”作为输入数据的全部原因。我简直忘了。感谢您的帮助,现在一切都运行顺利,我的其余代码也按预期工作:P