在每个“;”之后读取文件并添加NewLine

时间:2017-12-07 15:40:47

标签: python file

我有一个业余爱好的数控机床,上面写着一个奇怪的软件。为了使用它,我需要获取由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()

1 个答案:

答案 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()

您可以选择将输出文件名更改为不同的内容,以免您覆盖原始文件。