sql >> Databáze >  >> RDS >> Mysql

odstranit prázdný řádek vytištěný z výstupu dotazu podregistru pomocí pythonu

Obvykle byste otevřeli vstupní soubor a zapsali neprázdné řádky do druhého souboru:

with open('file.tsv') as infile, open('filtered_file.tsv', 'w') as outfile:
    for line in infile:
        if line.strip():
            outfile.write(line)

Pokud chcete filtrovat soubor na místě, můžete použít FileInput s inplace možnost:

import fileinput
for line in fileinput.FileInput("infile", inplace=1):
    if line.strip():
        print line

toto však používá přechodný soubor a nemusí fungovat v situacích s nedostatkem místa na disku.

Chcete-li filtrovat soubor na místě bez alokace dalšího místa na disku, můžete zkusit něco takového:

with open('file.tsv', 'r+') as infile:
    read_pos = write_pos = 0
    line = infile.readline()
    while line:
        read_pos += len(line)
        if line.strip():
            infile.seek(write_pos)
            infile.write(line)
            write_pos += len(line)
        infile.seek(read_pos)
        line = infile.readline()
    # update file size to the new, possibly reduced, size
    infile.truncate(write_pos)



  1. Jak získat vloženou hodnotu pro trigger

  2. Po ruční aktualizaci DB vymažte mezipaměť Hibernate 2. úrovně

  3. Konverze z Microsoft SQL Server na MySQL

  4. Postgres NENÍ VE VÝKONU