私の目標は、特定のファイルを開くためのユーザー入力を受け取るPythonプログラムを作成し、そのファイルの内容を(ユーザーが指定した)新しいファイルにコピーします。新しいファイルからスペースと数字をすべて削除します。新しいファイルを作成してその内容を操作するのに問題がある
私の 'sequence'ファイルの内容を新しく作成した 'newsequence'ファイルに正常にコピーしています。 'newsequence'ファイルを操作しようとすると、2回目のforループですべてが崩れます。
「newsequence」を読むことができなかったエラーが発生しました(おそらく、ファイルの内容ではなく変数を読みたいと思ったからでしょうか?)。私はファイルを文字列に変換すると助けになると思っていましたが(私はそれをしないとうまくいかなければならないと思っていたのですが)、7行目で 'newsequence'を文字列に変換しました。
これは、少なくとも "io.UnsupportedOperation:not readable"エラーを発生させることなく、完了まで実行するプログラムを持っていますが、それでも正しいわけではありません。私の出力ファイルは元の 'sequence'ファイルと同じですが、末尾に単に "8"という余分な行が含まれている点が異なります。この "8"はどこから来ていますか、私がしたいことをするために私のコードにどのような変更を加える必要がありますか?
私はプログラミングにはとても慣れていないので、一連のばかげた間違いを犯している可能性があります。あなたが私に与えることができる何か助けをありがとう。
sequence = open(input("Choose sequence file: "))
name = input('Enter name of new text file, without .txt: ') + '.txt'
with open(name, 'a') as newsequence:
for line in sequence:
newsequence.write(line)
for line in str(newsequence):
result = ''.join(i for i in line if i.isdigit())
result = result.replace(" ","")
newsequence.write(result)
sequence.close()
newsequence.close()
'with open(name、 'a')as newsequence:'を使用すると 'newsequence.close()'は不要です。これは 'with'がこのファイルを閉じるためです。 – furas
'open(...、 'a')'は 'append'を開き、' read'を開きません。 – furas
ファイルを同時に読み書きすることはできません。読み書きを停止するrembemberへのファイル使用ポインタ - このポインタを再度読み込みを開始するファイルに移動する必要があります(またはファイルを再度開く必要があります)。 1つのループの中で、より多くのことをすることができます。 - '連続する行のために: ' – furas