簡體   English   中英

Python程序不會讀取文本文件中的新行

[英]Python program won't read new line in text file

我正在嘗試逐行讀取文本文件,以便將信息存儲到某些變量中,但它在文件結束之前捕獲錯誤。 在執行 line = f.readline().strip() 時,程序拒絕讀取文件中的下一行並發生此錯誤:

回溯(最近一次調用最后一次):

文件“/Users/JoCarbons/PycharmProjects/untitled/venv/Gestione.py”,第 48 行,在 main

line = f.readline().strip()

AttributeError: 對象沒有屬性“readline”

這是主文件的一部分:

def main(self):

    Veicoli = []

    try:
        f = open("veicoli.txt", "r")
        line = f.readline().strip()

        while (line != ''):
            tok = line.split()
            cod = int(tok[0])
            tipo = tok[1]
            targa = tok[2]
            line = f.readline().strip()
            if (tipo == "auto"):
                tok = line.split()
                cilindrata = int(tok[0])
                diesel = bool(tok[1])
                line = f.readline().strip()
                modello = line
                line = f.readline().strip()
                marca = line
                a = Auto(cod, tipo, targa, cilindrata, diesel, modello, marca)
                Veicoli.append(a)
                line = f.readline()
            else:
                #line = f.readline().strip()
                categoria = line
                line = f.readline().strip()
                posti = int(line)
                line = f.readline().strip()
                modello = line
                line = f.readline().strip()
                marca = line
                f = Furgone(cod, tipo, targa, categoria, posti, modello, marca)
                line = f.readline().strip()
                Veicoli.append(f)
        f.close()
    except IOError:
        print("IO error found.")
    except:
        print("Unexpected error: ", sys.exc_info()[0])
        raise

試試這個簡單的程序,它將打印文件中的每一行

f = open("demofile.txt", "r")
for x in f:
  print(x)

嘗試:

 line = f.read().splitlines()

strip() 的使用: .strip() 與字符串一起使用,例如

  line = 'A rose is a rose is a rose is a rose,\n Gertrude Stein (1874 - 1946)'

   print(line.strip())
   A rose is a rose is a rose is a rose,
      Gertrude Stein (1874 - 1946)

以下幾行是完全錯誤的。 您正在嘗試對無效的對象進行文件操作。 在 "f = Furgone(cod, tipo, targa, categoria, posti, modello, marca)" 之前,這一行 "f" 是您之前打開的文件的對象。 在此語句之后,它不再是文件對象。 所以它不會有文件相關的屬性。 我不確定您在此聲明中要實現的目標,但如果可以,您可以在此處更改變量名稱。 使用任何其他變量來分配 Furgone(cod、tipo、targa、categoria、posti、modello、marca)而不是“f”

f = Furgone(cod, tipo, targa, categoria, posti, modello, marca)
line = f.readline().strip()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM