os.path.join不会产生文件的内容

时间:2014-06-07 19:14:20

标签: python

print "Which category would you like to view? Savory, Dessert, Cake, Soup or Drink?    "
category = raw_input()
for x in os.listdir(category): print x
name = raw_input("Which recipe would wou like to view?   ")
fullname = os.path.join(category, name)
f = open(fullname, "r");
print f

我正在编写一个程序,允许用户查看保存在特定目录中的.txt文件的内容。当我运行此代码时,我没有得到内容,而是收到一条消息说明: 打开文件'savory / b.txt',模式'r'在0x1004bd140

任何想法。我是python的新手,所以我不知道是什么导致错误,但我认为这是由于一些丢失的代码。 谢谢。

1 个答案:

答案 0 :(得分:3)

open的返回值是文件对象(不是文件内容!)。您需要调用文件对象上的方法来实际读取文件:

f = open(fullname, "r")
print f.read()
f.close()

如果它是一个大文件,您可能希望逐行遍历文件

f = open(fullname, "r")
for line in f:
  print line
f.close()

在旁注中,这里有替代语法,您不必记得调用close方法:

with open(fullname, "r") as f:
  for line in f:
    print line