sql >> Database teknologi >  >> RDS >> Mysql

fjern tom linje udskrevet fra hive-forespørgselsoutput ved hjælp af python

Normalt ville du åbne inputfilen og skrive de ikke-tomme linjer til en anden fil:

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

Hvis du vil filtrere filen på plads, kan du bruge FileInput med inplace mulighed:

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

dette bruger dog en mellemfil og virker muligvis ikke i situationer med lav diskplads.

For at filtrere filen på plads uden at tildele yderligere diskplads, kan du prøve noget som dette:

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. MySql Workbench-installationsprogrammet kræver Visual C++ 2015 Redistributable Package for at blive installeret, men det er allerede installeret

  2. Kan vi bruge PHP-funktionen strtotime i Mysql Query

  3. Alternativer til array_agg()?

  4. Kopier mysql-database fra fjernserver til lokal computer