モデルの開始ファイルとして機能するテキストファイルがあります。それは次のようになります。行をn回読み書きする
foo1
foo2
bar, foo, yolo
1, 2, 3
foo3
foo4
3行ヘッダーで、4行目は値を取り、両方の線はxがどのように大きなに依存して繰り返す必要があります。 x = 3としましょう。下の行は上書きしないで下に移動します。先頭の行(foo1 & foo2)は動的に生成されるので、必ずしも2行だけである必要はないので、インデックスでアクセスすることはできません!
だから私のファイルは、このようになります。これまでの
foo1
foo2
bar, foo, yolo
1, 2, 3
bar, foo, yolo
1, 2, 3
bar, foo, yolo
1, 2, 3
foo3
foo4
私の考え:
initraw = open('fileX.txt', "r") #opening raw file for reading
initwrite= open('fileY.txt', "w") #opening file for writing
initline = initraw.readlines() #writing content of raw file into string
x = 3
for line in initline:
initwrite.writelines(line,)
if line.startswith('bar, foo, yolo'):
for i in range(x):
initwrite.writelines(initline[2])
initwrite.writelines(initline[3])
initwrite.close() #closing file
initraw.close() #closing raw file
これを解決する方法を任意の提案?今のところ、これは次のようになります。
"bar、foo、yolo"の後の最初の行をスキップする必要があります。
これは 'bar'ラインと' 1、2、3 'の行の間に線を書きませんでしょうか?新しい行が来るようにする行のインデックスを見つけ、 'insert'を使ってそれらを' initline'に追加するだけです。 (これは 'readlines'が文字列ではなく文字列の' list'を返すからです) –
@PatrickHaugh私の最後の編集を参照してください...はい、そうです。しかし、私が複製する必要がある行の数が固定されていないので、残念なことに 'startswith'を使う必要があります。 – GeoEki