0

次のような内容の大きなテキスト ファイルがあります。

158 lines of Text
2000 lines of Data
140 lines of Text
2000 lines of Data
140  lines of Text
.
.
.

Pythonで5つの異なるテキストファイルを読み書きしたい合計5セットの2000行のデータがあります。このようなもの:

Data1.txt
Data2.txt
Data3.txt
.
.

オンラインで閲覧すると、次のことがわかりました: Python で大きなテキスト ファイルからセクションを効率的に読み取る

def get_block(beg,end):
   output=open("Output.txt",'a')
   with open("input.txt",'r') as f:
      for line in f:
         line=line.strip("\r\n")
         line=line.split("\t")
         position=str(line[0])
         if int(position)<=beg:
            pass
         elif int(position)>=end:
            break
         else:
            for i in line:
               output.write(("%s\t")%(i))
            output.write("\n")

どの問題が私のものに似ていますが、この関数では次のエラーが発生します。

File "/Users/aperego/Desktop/HexaPaper/DataToPlot/ReadThermo.py", line 8, in get_block
    if int(position)<=beg:

ValueError: invalid literal for int() with base 10: 'LAMMPS (5 Jun 2019)' 

これは、入力テキスト ファイルに一連のデータ間に多くのテキスト行があるためだと思います。また、スクリプトを実行して、データを含むすべての行を一度に抽出したいのですが、単一の間隔の行しか受け入れません。

このスクリプトを変更することがこの問題に取り組むための最良の方法なのか、それとも目的の目標を達成するためのより良い方法があるのか​​ はわかりません。どんな助けでも大歓迎です!

4

1 に答える 1