2013-02-13 43 views
1

我有一个从csv文件读取并打印到标准输出的python脚本。默认输出是stdout是必要的,而不是直接到文件。 当我在bash执行这个脚本,像这样:Bash在执行命令之前擦除输出文件

program.py > file.csv 

其中输出FILE.CSV是,Python脚本从读取相同的,它失败。原因是在执行python程序之前,bash显然会擦除file.csv。 如何在bash中执行此操作,以便在python程序执行完成后删除文件?

回答

2

你可以做一些丑陋像

program.py > tmp.csv && mv tmp.csv file.csv 
+0

岂不'program.py> tmp.py; mv tmp.py file.csv'在这种情况下更合适吗?另外,最好不要创建比需要更多的文件,因为它在SD卡上运行,我相信它缩短了它的使用寿命。 – shrx 2013-02-13 15:46:12

+0

@shrx - 这真的取决于你想如何处理'program.py'不能干净地退出的情况。就我个人而言,我不想覆盖我的输入文件,除非我知道程序成功创建了另一个文件。 – mgilson 2013-02-13 15:47:42

+0

@shrx - 我看不出如何在不修改您的python脚本内部保存结果然后在退出之前将其转储(到文件而不是stdout)的情况下整齐地避免临时文件。 – mgilson 2013-02-13 15:51:12