我遇到一个奇怪的问题,即打印到文件的某些Python代码没有插入EOF字符。基本上,Python脚本生成脚本以便稍后作为集群上的作业提交。我基本上在""""之间编写了整个脚本,允许插入变量(在我的模拟中改变一些参数)。我使用
编写了脚本with open(file_name, 'w') as runscrpt:
runscrpt.write("""ENTIRE_FILE_CONTENTS_HERE""")
语法。如果有必要,我可以给出实际的代码,但它不仅仅是上面的代码。尽管脚本运行正常并且生成了所有的runripts,但每当我提交它们时都没有发生任何事情。我花了很长时间才弄明白为什么,但这是因为他们错过了一个EOF角色。我可以修复它,例如,打开一个,在vim中的某处添加一些尾随空格或空行,然后重新保存文件。
为什么Python没有插入EOF字符,有没有比用vim手动对所有文件进行简单编辑更好的方法来解决这个问题?
答案 0 :(得分:0)
听起来你的意思是说最后没有EOL(不是EOF!),因为diff
通常会告诉你。只需在写入结束时添加换行符(确保在最终"""
终止符之前有换行符,或明确写入单独的换行符。)
open(file_name, 'w') as runscript:
runscript.write("""ENTIRE_FILE_CONTENTS_HERE\n""")
(作为奖励,我添加了丢失的元音。)