永发信息网

想通过python找出txt文档中的一行信息

答案:4  悬赏:40  手机版
解决时间 2021-03-23 18:10
  • 提问者网友:骨子里的高雅
  • 2021-03-23 13:11
假如现在有一个txt是一行行写好的,每一行是学号、姓名、……的信息,想根据学号得到那一行数据,请问代码怎么写?3ks
最佳答案
  • 五星知识达人网友:白昼之月
  • 2021-03-23 14:25
def loadfromfile(filename):
    with open(filename, 'rt') as handle:
          return handle.readlines()

def findnum(lst, num):
     for i, ln in enumerate(lst):
         if ln.startswith(num):
              return i, ln

data = loadfromfile("student.txt")
i, ln = findnum(data, "S1053")
print "the num %s student is at %d line, context:%s" % (i+1, ln)
全部回答
  • 1楼网友:迷人又混蛋
  • 2021-03-23 17:34
def search_by_code(code):     with open("data.txt") as fp:         lines = fp.readlines()         ret = filter(lambda l:l.startswith(code), lines)         return None if ret else ret[0]
  • 2楼网友:零点过十分
  • 2021-03-23 16:39
类似于数据库?首先你可以用sqlite3这个模块,sqlite3,你可以百科查,这样用sql语句就可以了, 也可以读取按行读取,再加in判断,成立就输出这一行。具体代码就不用写了吧,,,
  • 3楼网友:行路难
  • 2021-03-23 15:45
有个脏方法啊。 算法: 1.取出txt2, txt1所有行的内容。            2.用txt2行中的内容去判断。这样逻辑清晰            3.时间复杂度m*n (m,n为txt的行数) txt1 =  'your_path' txt2 =  'your_path' txt_dump = 'your_path' txt1_lines, txt2_lines , dump_lines= [], [], [] def load_txt(file, ary):     with open(file, 'rb') as f:         for line in f.readlines():             ary.append(line)  load_txt(txt1, txt1_lines)  load_txt(txt2, txt2_lines)  for line_txt2 in txt2_lines:      for line_txt1 in txt1_lines:          if line_txt2 in line_txt1:              dump_lines.append(line_txt1) with open(txt_dump, 'wb') as f:     f.writelines(dump_lines)
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯