cari

Rumah  >  Soal Jawab  >  teks badan

linux - python如何从后往前读取文件?

小弟想在web上显示log文件的最新的五十条,遇到这个问题,希望大家帮帮忙。不甚感激。

PHPzPHPz2802 hari yang lalu912

membalas semua(3)saya akan balas

  • PHPz

    PHPz2017-04-18 09:27:24

    file.readlines()[-50:]

    balas
    0
  • 大家讲道理

    大家讲道理2017-04-18 09:27:24

    Beberapa cara:

    1. Gunakan subproses untuk melaraskan ekor -f

    2. Gunakan pyinotiy untuk memantau perubahan fail

    3. Laksanakan sendiri, sebagai contoh, mula-mula dapatkan saiz fail, baca bait terakhir, kemudian kembali ke n pertama, iaitu baris terakhir, dan kemudian kembali dalam urutan

    balas
    0
  • 怪我咯

    怪我咯2017-04-18 09:27:24

    Semua orang yang dinyatakan di atas boleh dilaksanakan, tetapi kaedah @nealnote boleh menyebabkan masalah prestasi jika anda membaca fail besar Adalah disyorkan untuk menggunakan apa yang @manong katakan, subprocesstala program unix yang disertakan dengan sistem. pelaksanaan khusus adalah seperti berikut: tail

    import subprocess
    
    
    fh = subprocess.Popen("tail -n 50 /var/log/dmesg", stdout=subprocess.PIPE, shell=True)
    for line in fh.stdout.readlines():
        print(line.decode('ascii'), end="")
    

    Hasil jalankan:

    ...
    ...
    rdac: device handler registered
    device-mapper: multipath round-robin: version 1.0.0 loaded
    EXT4-fs (sdd5): mounted filesystem with ordered data mode. Opts: 
    EXT4-fs (sdd2): mounted filesystem with ordered data mode. Opts: 
    EXT4-fs (dm-1): mounted filesystem with ordered data mode. Opts: 
    EXT4-fs (dm-0): warning: maximal mount count reached, running e2fsck is recommended
    EXT4-fs (dm-0): mounted filesystem with ordered data mode. Opts: 
    Adding 1023996k swap on /dev/sdd3.  Priority:-1 extents:1 across:1023996k 

    balas
    0
  • Batalbalas