如果用python讀進內存再打亂的思路,如果大文件的話,就比較麻煩了
網上找到一個簡單的方法,shuf:
$ shuf --help
用法: shuf [選項]... [文件] 或者: shuf -e [選項]... [參數]... 或者: shuf -i LO-HI [選項]... 把輸入行按隨機順序輸出到標准輸出。 長選項必須使用的參數對於短選項時也是必需使用的。 -e, --echo 將每個參數視為輸入行 -i, --input-range=LO-HI 將LO 到HI 的每個數字視為輸入行 -n, --head-count=行數 最多輸出指定的行數 -o, --output=文件 將結果輸出到指定文件而非標准輸出 --random-source=文件 從指定文件獲得隨機比特 -z, --zero-terminated 以0 結束行而非新行 --help 顯示此幫助信息並退出 --version 顯示版本信息並退出 如果沒有指定文件,或者文件為"-",則從標准輸入讀取。 [請向bug-coreutils@gnu.org](mailto:請向bug-coreutils@gnu.org) 報告shuf 的錯誤 GNU coreutils 項目主頁:<<http://www.gnu.org/software/coreutils/>> GNU 軟件一般性幫助:<<http://www.gnu.org/gethelp/>> 請向<<http://translationproject.org/team/zh_CN.html>> 報告shuf 的翻譯錯誤
使用例子:shuf input_file.txt -o output_file.txt