我知道下面的选项将输出追加到文件:重定向Python脚本的输出到文件的开头
test.py:
print "Error"
print "Warning"
的test.txt:
Levels:
Debug
当我这样做:
python test.py > test.txt
它附加在文件的末尾。
但是,如果我想在一个文件的开头追加,让自己的文件的输出看起来如下:
Levels:
Error
Warning
Debug
是否有这样做的任何直接的方式可能没有手动创建临时文件(例如sed -i可以)。
我尝试了好几种方法SED:
sed -i '1i\`python test.py`' test.txt
但没有似乎是工作。
为什么你需要追加到文件的开头?据我所知,没有操作系统允许你追加到文件的开头。也许找到一种方法可能会更好,所以你不必追加到文件的开头。 – Dunes 2014-08-30 13:06:52
您可以在没有任何tmp文件的情况下执行此操作(例如,请参阅http://stackoverflow.com/a/17331179/1745001),但不能以任何方式直截了当。 – 2014-08-30 14:10:18
为了安全起见,您*希望*使用临时文件。重命名文件是原子性的,有效地允许您在一个不可中断的步骤中用新的文件替换旧文件:如果移动失败,原始文件仍然完好无损。链接的答案会尝试将数据写入原始位置,这意味着如果中途出于任何原因写入失败,则原始文件已损坏。 – chepner 2014-09-01 12:20:29