python 3从文本文件中查找和打印整数

时间:2017-02-19 17:17:59

标签: python python-3.x

我的文本文件如下:

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。 关于如何做到这一点的任何想法?

2 个答案:

答案 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))