2014-10-17 105 views
-2

我有我的桌面上的文本文件,lines.txt讀線到一個變量

lines stuff stuff 
lines lines 
boats boats lines 

和所有我想要做的是讀入一個變量,但每次我打印它,我得到一個空的列表。這裏是我的代碼:

inF = 'C:/Users/me/Desktop/text.txt' 
 
    def repeatWords(inF): 
 
      import string 
 
      infile = open(inF, 'r') 
 
      text = infile.readlines() 
 
      infile.close() 
 
      print(text) 
 
repeatWords(inF)

當我print(text),我得到的是一個空列表。我究竟做錯了什麼?

+0

你確定這就是你打開文件(在桌面上即版本,而不是別的地方)? – jonrsharpe 2014-10-17 14:32:53

+0

發佈您的完整代碼。我在這裏看不到任何打印電話。可能是功能之外,你已經定義了文本= []。 – 2014-10-17 14:33:43

+0

你在哪裏叫'打印(文本)'?在調用readlines()之後立即調用? (你的函數沒有返回任何東西;你是否缺少'return text'?) – 2014-10-17 14:34:00

回答

0

你的代碼有很多問題。我不知道你在哪裏撥打print(text),但它在之後需要被分配到。這裏有一個修正版本:

def repeat_words(in_f, out_f): 
    with open(in_f, 'r') as infile: 
     text = infile.readlines() 
     print(text) 
+0

我明白了這一點,謝謝。我不知道爲什麼它不適合我... 打開文件的方式,你做得比infile = open(inF,'r')更好嗎? – royalflush5 2014-10-17 14:46:19

+0

@ royalflush5是的,只要有可能,總是首選上下文管理器。當我需要將流作爲屬性時,我可以想到它不能使用的地方。 – simonzack 2014-10-17 15:00:14

+0

很酷,我從現在開始使用它,謝謝。 – royalflush5 2014-10-17 15:09:15

0

我想你叫text出側功能。注意函數裏面的變量有一個局部範圍所以你需要在函數裏面調用text

+0

我記得從現在起,謝謝 – royalflush5 2014-10-17 15:25:48

+0

歡迎您! – Kasramvd 2014-10-17 15:38:27

0
file_object = open("myfile", 'r') 
for line in file_object: 
    print(line) 
file_object.close() 
相關問題