2017-03-09 6 views
0
f = open('name.txt') 

line = f.readline() 

print line 
names = line.split() 
print names 
first = names[0] 
last = names[1] 

print first 
print last 
print first[0].lower() 
address = last[0].lower() + first[0].lower() + "@gmail.com" 
print address 

私は初心者ですが正直に迷っています。テキストファイルからすべての名前を読み取るにはどうすればいいですか?私はそれを読むことしかできなかった。これで、テキストファイルからすべての名前を読み取ることができますか?

答えて

0

ループにはforループと反復を使用できます。あなたはファイルを扱う場合は、より良いwithコンテキストを使用することを覚え、そしておそらく明示的mode='r'を使用します。

withopen('name.txt',mode='r') as f: 
    for line in f: 

     print line 
     names = line.split() 
     print names 
     first = names[0] 
     last = names[1] 

     print first 
     print last 
     print first[0].lower() 
     address = last[0].lower() + first[0].lower() + "@gmail.com" 
     print address

forその後、fファイル内lineのすべてをループとはforループのを実行します(ここではprint lineなどのコードです)。

さらにwithは、ファイル、プログラムがwithコンテキストを出るとが正しくを閉じていることを保証するために使用されます。それ以外の場合は、f.close()で自分で行う必要があります。

+0

ありがとうございました!私はあなたがそれらの言葉を使うことができるかどうか分からなかった。ありがとうございました。 –

+0

"with open(...)"を使用すると、ファイルを閉じる必要はありません。さもなければそれを閉じる必要があります。 – Rafael

+0

もう一度ありがとうございます。 –

0

あなたはこのようなものを使用することができます:マップ+ラムダを使用して、2行で

f = open('name.txt') 

for row in f: 

print line 
names = line.split() 
print names 
first = names[0] 
last = names[1] 

print first 
print last 
print first[0].lower() 
address = last[0].lower() + first[0].lower() + "@gmail.com" 
print address 
+0

ありがとうございます!私はそんなに勉強しています。 –

+0

このプログラムは適切に意図されていないため、失敗します。 –

0
file = open('name.txt') 
print(list(map(lambda one: one.split()[0]+ one.split()[1]+'@gmail' , file))) 

を!

関連する問題