pythonのfor文について質問です。
以下のスクリプトのように3つのリストがあります。
lists3のリスト内の値を一つづつ読み込みたいのですが、うまくいきません。
そもそもスクリプトの書き方を見直す必要があるのでしょうか。。。?
色々調べて試行錯誤しておりますがうまくいかず困っています。
お詳しい方アドバイスいただけますと幸いです。
※追加情報
このコードは複数のファイルから指定した行番取得してリストに格納し、複数のファイルに対して取得した行番号間の範囲を取得する目的のコードとなります。
python3
lists1 = list(ファイルの行番号複数の数値存在) lists2 = list(ファイルの行番号複数の数値存在) lists3 = list(複数のファイル名が存在) path = 'output.txt' for lists1s , lists2s in zip(lists1,lists2): print(lists1s) print(lists2s) for x in range (lists1s,lists2s): target_line = linecache.getline(lists3, int(x)) with open(path, mode='a') as f: f.write(target_line)
「複数の値が存在」の所を最低限で良いので、具体的に提示してください。
上記のコードで getlines の部分で lists3 をひとつづつ読み出すと、
読み込む行の数だけファイル名が必要になります。
lists1 = [1]
lists2 = [5]
lists3 = ["a.txt", "a.txt", "a.txt", "a.txt"]
あまり考えられないようなデータ構造なので、
lists1~3 の要素数は全て同じではありませんか?
ご回答いただきありがとうございます。
情報追記致しました。
リストの要素は以下のような感じです。
lists1 = [1,2,3,4] 行番号(開始)
lists2 = [5,6,7,8] 行番号(終了)
lists3 = ["a.txt", "b.txt", "c.txt", "d.txt"]
全て同じ長さであれば、
ForestSeoさんの「同一インデックスの要素」が該当します。
但し、lists3 と lists3s の区別に注意。
linecache.getline(lists3, int(x)) <-- lists3 はリスト
回答3件
あなたの回答
tips
プレビュー