0
私は奇妙に書かれたソフトウェアを持った趣味のCNCマシンを持っています。それを使用するには、私はCADソフトウェアから出力されたファイルを取り出し、 ";"の後に改行(CRLF)を追加する必要があります。代わりにこれを行うPythonスクリプトを作ってみたいですが、動作させることはできません。誰かが私を正しい方向に向けることができますか?ファイルを読み込み、毎回 ";"の後にnewLineを追加すると、
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()
あなたのコードが正しいかどうかは分かりませんが、ファイルの読み書きは同時に問題を引き起こす可能性があります(R/Wポインタが壊れる可能性があります)。すべてのファイルの内容を(すぐに)読み込んで文字列にし、 '; \ 'で各オカレンスを置き換えてから、別のファイルにスティングを書き戻す必要があります。また、より高速に動作します。もちろん、これは* TB *サイズのファイルには当てはまりません:)。 – CristiFati
何が問題なのですか?エラーや間違った出力が出ていますか?それがCRLFの場合、 ''\ n' 'の代わりに' '\ r \ n' 'が必要な場合があります。ファイルを文字列と置換文字に読み取ることもできます。 'contents = file_in.read()。replace( ';'、 '; \ r \ n')' – pault
また、 'currentChar:ではない間はあまり意味がありません。キャラクターが存在しない場合は、そのキャラクターを処理したいだけですか? – glibdud