0

テキストファイルを編集し、編集したバージョンを新しいテキストファイルに出力するプログラムをPython 3で作成しました。しかし、新しいファイルには、私が持つことができない空白行が含まれており、それらを取り除く方法がわかりません。

前もって感謝します。

newData = ""
i=0
run=1
j=0
k=1
seqFile = open('temp100.txt', 'r')
seqData = seqFile.readlines()

while i < 26:
sLine = seqData[j] 
editLine = seqData[k]
tempLine = editLine[0:20]
newLine = editLine.replace(editLine, tempLine)
newData = newData+sLine+'\n'+newLine+'\n'
i=i+1
j=j+2
k=k+2
run=run+1

seqFile.close()

new100 = open("new100a.fastq", "w")
sys.stdout = new100
print(newData)
4

2 に答える 2

1

sLineすでに改行が含まれています。長さが 20 文字以下newLineの場合は、改行も含まれます。editLineあなたは変えられる

newData = newData+sLine+'\n'+newLine+'\n'

newData = newData+sLine+newLine

editLineが 20 文字を超える場合、末尾の改行は切り捨てられ、自分自身tempLine = editLine[0:20]に改行を追加する必要がありnewDataます。

readline (readlines で使用される) の python ドキュメントによると、末尾の改行は各行に保持されます。

ファイルから 1 行全体を読み取ります。末尾の改行文字は文字列に保持されます (ただし、ファイルが不完全な行で終わっている場合は存在しない場合があります)。[6] size 引数が存在し、負でない場合、それは最大バイト数 (末尾の改行を含む) であり、不完全な行が返される場合があります。size が 0 でない場合、EOF がすぐに検出された場合にのみ空の文字列が返されます。

一般に、予期しない動作が発生したときに、変数の値を出力することで、プログラムのデバッグに長い道のりを歩むことができます。たとえば、で印刷sLineするprint repr(sLine)と、そこに末尾の改行があることが示されます。

于 2013-10-18T00:00:25.713 に答える