1
file = open("datafile1.txt", "rU")
for line in file:
    line = line.strip()
    print line
    for element in line:
         line = 2

これが私がこれまでに持っているもので、作成した単純なデータファイルからの出力は次のようになります。

blind
element
baker
enjoy

これは、読みたい datafile1 に入力された内容に対応します。この datafile1 を読み取ってすべての行を出力しようとしていますが、最初の行には if 条件がありません。for ループで [2:] をスライスすることを考えていましたが、要素を印刷する方法がわかりません。

if ステートメントを使用せずにこれらの文字だけを読み取って出力する方法を教えてください。私が知っている唯一の方法は、Try and except を使用して if ステートメントを置き換え、ファイルの最後の 3 行だけを読み取ることです。どんな提案でも大歓迎です。

ありがとう

4

3 に答える 3

2

ファイル オブジェクトは反復子のように機能するため、next()実際に反復する前に 1 つの要素 (1 行) を消費することができます。

file = open("datafile1.txt", "rU")
next(file, None)
for line in file:
    line = line.strip()
    print line

小さなファイルの場合は、それをリストに読み取ってからスライス演算子を使用することもできます。

with open("datafile1.txt", "rU") as f:
    lines = f.readlines() # or lines = [l.strip() for l in f]
for line in lines[1:]:
    print line
于 2012-05-02T21:17:37.403 に答える
2

次のようなものを冷静に使用します。

with open("datafile1.txt") as file:
    next(file)
    for line in file:
       #do something awesome

お役に立てれば!

于 2012-05-02T21:19:46.593 に答える
0

linecache.getline(filename, lineno)を使用できます

于 2012-05-02T21:21:24.860 に答える