2014-10-17 106 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() 
相关问题