pathway.txt
包含这样的行(如下所示)
a,
b,0
c,8
d,
dummy
应该打印[a,d]
#!/usr/bin/python3.6
def pathway(file):
dict={}
dummy=[]
file_object=open(file, "r+")
for line in file_object:
a, b = line.split(',')
if b == '':
dummy.append(a)
print (dummy)
pathway("pathway.txt")
答案 0 :(得分:0)
您没有处理行分隔符。除了最后一个line
字符串之外的所有字符串都将以\n
换行符结尾。这使b
等于'\n'
,而不是空字符串。
您应首先从b
剥离空格:
for line in file_object:
a, b = line.split(',')
if not b.strip():
dummy.append(a)
str.strip()
method返回一个新字符串,其中包含从开头和结尾删除的所有空格(包括换行符)。在拆分之前,您还可以先将其应用于line
:
a, b = line.strip().split(',')
但是你会在逗号到位后留下空白,并在分配给a
的值的开头删除空格。
您应该使用csv
module来读取以逗号分隔的数据:
def pathway(file):
dummy = []
with open(file) as file_object:
reader = csv.reader(file_object)
for row in reader:
if len(row) == 1:
dummy.append(row[0])
print(dummy)