0

次のコードを使用して、テキスト ファイルから 1 行ずつ読み取り、画面に出力しました。

with open("source.txt") as f:
    content = f.readlines()
    print(content)
    print('\n')
f.close()

しかし、\n出力に追加されるだけで、代わりに出力が1行で表示されていました。たとえば、ファイルが次のような場合:

abc
def
ghi

出力は次のとおりです。

['abc\n', 'def\n', 'ghi']

次に、一重引用符を with で次のように変更してみまし'\n'"\n"

with open("source.txt") as f:
    content = f.readlines()
    print(content)
    print("\n")
f.close()

私が必要とする実際の出力は次のとおりです。

abc
def
ghi

そのために何ができますか?オペレーティング プラットフォーム: Mac(Unix) よろしくお願いします。

4

4 に答える 4

1

問題は、リスト オブジェクト自体を印刷しようとしていたことです。代わりに、リストをループして個々の項目を印刷する必要があります。

>>> lis = ['abc\n', 'def\n', 'ghi']
>>> print lis
['abc\n', 'def\n', 'ghi']

print lis は、実際にはリスト オブジェクトの str 表現を出力します。

>>> print str(lis)
['abc\n', 'def\n', 'ghi']

リストをループして、個々のアイテムを印刷します。Python では、インデックスが必要な C/C++ とは異なり、リスト自体をループできます。

>>> for item in lis:   
...     print item.rstrip('\n')  #removes the trailing '\n'
...     
abc
def
ghi

リストまたはその他の iterable に対する for ループは、その iterable から次の項目を 1 つずつ返し、for ループで使用される変数に割り当てます。

for x in lis:  #in each iteration x is assgined the next item from lis
   print x
于 2013-06-24T07:10:13.677 に答える
0
with open('source.txt', 'r') as f:
    content = f.read()
    print content
于 2013-06-24T09:46:27.747 に答える