2016-10-12 12 views
0

だから私はなぜこのエラーが出るのか理解しようとしています。私はこれを置く場合:ファイルを開くときにタイプエラーが発生しました

def open_file(): 
    fp = open("ABC.txt") 
    return fp 

file = open_file() 

count = 1 

for line in file: 
    if count == 9: 
     line9 = line 
    if count == 43: 
     line43 = line 
#blahblahblah more programming 

これは動作しますが、これは私にNoneTypeオブジェクトを与えるには、反復可能ではありません。

def open_file(): 
    while True: 
     file = input("Enter a file name: ") 
     try: 
      open(file) 
      break 
     except FileNotFoundError: 
      print("Error. Please try again.") 
      print() 

file = open_file() 

count = 1 

for line in file: #here is where I get the error 
    if count == 9: 
     line9 = line 
    if count == 43: 
     line43 = line 

私はそれだけでいくつかの愚かな間違いだと思うが、私はそれを見つけるように見えることはできません。 お時間をありがとう!

+2

のようなものを試してみてください'NoneType'です。 – Li357

答えて

2

open_fileの機能にはreturnステートメントが含まれていないため、Noneを返します。あなたはとても `file`は` NONE`は、このように行を反復処理することで、反復処理することができないと言うだろうが、open_file` `で(ファイルを返す必要があります)あなたが明示的に何かを返すことはありません

def open_file(): 
    while True: 
     file = input("Enter a file name: ") 
     try: 
      return open(file) 
     except FileNotFoundError: 
      print("Error. Please try again.") 
      print() 
関連する問題