我的文本文件如下:
1,jack,Jackson,16,won
2,Dex,Craz,17,loss
3,Bree,Lopson,20,
4,her,ber,12,loss
5,say,huy,34,
6,lol,asw,23,won
7,dert,ker,30,loss
8,far,sas,11,
9,ger,xza,15,
10,yui,caer,66,won
11,opl,guyh,45,
我想要做的就是让用户输入一个他们想看的号码,并打印出与该号码对应的信息。
这是我的代码:
numb = input('Input Line: ')
fiIn = open('Prac.txt').readlines()
for lines in fiIn:
if numb == lines[0]:
data = lines.split(',')
print ('|{0[0]:<15}|{0[1]:<15}|{0[2]:<15}|{0[3]:<15}|{0[4]:<15}'.format(data))
但它不仅仅打印我想要的数字,还打印其他数字。 例如:如果我输入1,它将输出1,10和11而不仅仅是1。 关于如何做到这一点的任何想法?
答案 0 :(得分:1)
split()
lines
,然后检查第一项是否是您的号码。
for lines in fiIn:
data = lines.split(',')
if numb == data[0]:
print ('|{0[0]:<15}|{0[1]:<15}|{0[2]:<15}|{0[3]:<15}|{0[4]:<15}'.format(data))
答案 1 :(得分:1)
错误出现在比较行if numb == lines[0]:
中,您在那里用行的第一个字符检查输入字符串,因此它匹配以1
开头的所有行,您需要做的是在,
上拆分该行,然后将第一个元素比作:
numb = input('Input Line: ')
fiIn = open('Prac.txt').readlines()
for lines in fiIn:
if numb == lines.split(",")[0]:
data = lines.split(',')
print ('|{0[0]:<15}|{0[1]:<15}|{0[2]:<15}|{0[3]:<15}|{0[4]:<15}'.format(data))