我有一个业余爱好的数控机床,上面写着一个奇怪的软件。为了使用它,我需要获取由CAD软件输出的文件,并在每个“;”之后添加一个新行(CRLF)。我想创建一个python脚本来代替,但我无法让它工作。有人能指出我正确的方向吗?
import os
import sys
if not (len(sys.argv) == 2 and os.path.isfile(sys.argv[1])):
print(__doc__)
sys.exit(1)
file_in = open(sys.argv[1], "r+")
currentChar = file_in.read(1)
i = 0
while not currentChar:
if (currentChar == ";"):
file_in.seek(i)
file_in.write("\n")
currentChar = file_in.read(1)
i += 1
file_in.close()
答案 0 :(得分:1)
正如CristiFati的评论所提到的那样,你应该阅读文件,关闭它,然后打开它写作:
import sys
file_in = open(sys.argv[1],'r')
content = file_in.read()
file_in.close()
file_out = open(sys.argv[1],'w')
file_out.write(content.replace(';',';\n'))
file_out.close()
您可以选择将输出文件名更改为不同的内容,以免您覆盖原始文件。