簡體   English   中英

將文件一分為二,但保留行

[英]Split a file into two but preserve lines

我正在努力將文本文件分成兩個。

例如,這會將文件分成兩部分,但如果行數不均勻,則會創建第三個文件:

for line in infile:
        count_lines += 1
lines_per_file = int(count_lines / 2)
        subprocess.call(['split', '-l', str(lines_per_file), '--numeric-suffixes', infile, chunk_destination])

雖然這會將文件分成兩部分,但會將行減半:

subprocess.call(['split', '-n', '1/2', '--numeric-suffixes', infile, chunk_destination])

有沒有一種相對簡單的方法將文件分成兩個 Python 或 Bash 將額外的行(如果行數不均勻)添加到兩個現有文件之一中,而不是制作第三個分成兩個文件但保留行?

實際上,較新版本的 split 可以選擇保留行:

CHUNKS 可能是: N 根據輸入的大小拆分為 N 個文件 K/N output Kth of N 到 stdout l/N 拆分為 N 個文件而不拆分行/記錄 l/K/N output Kth of N 到 stdout 不拆分行/記錄 r/N 像 'l' 但同樣使用循環分布 r/K/N 但只有 output Kth of N 到標准輸出

所以這有效:

subprocess.call(['split', '-n', 'l/2', '--numeric-suffixes', infile, chunk_destination])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM