sql >> データベース >  >> RDS >> Mysql

Pythonを使用してハイブクエリ出力から印刷された空の行を削除します

    通常、入力ファイルを開き、空でない行を2番目のファイルに書き込みます。

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

    ファイルをインプレースでフィルタリングする場合は、FileInputを使用できます。 inplaceを使用 オプション:

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

    ただし、これは中間ファイルを使用するため、ディスク容量が少ない状況では機能しない可能性があります。

    追加のディスク容量を割り当てずにファイルをインプレースでフィルタリングするには、次のようにします。

    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. 単純な挿入ステートメントを使用して、バイナリファイルデータをバイナリSQLフィールドに挿入するにはどうすればよいですか?

    2. mysqlの結果をカテゴリ別にグループ化し、各カテゴリの下のグループに表示します

    3. Node.jsとExpressを使用してJSONデータセットをテーブルとして表示する

    4. 「SQLServerがコンポーネント「アドホック分散クエリ」のステートメント「OpenRowset/OpenDatasource」へのアクセスをブロックした」を修正