在Python中读写文本文件的问题

时间:2015-02-26 20:49:18

标签: python python-3.x

通过print (file.read())

解决了这个问题

我有一个名为' PyDOS'的项目。我最近发现你可以用Python读写文件,我实现了这个并且写入位有效。但是在尝试读取部分时,它会提供一种语法。弄乱阅读部分的代码是:

print file.read

这是带有第一个错误的代码:

def textviewer():
   print ("Text Viewer.")
   file_name = input("Enter a text file to view: ")
   file = open(file_name, "r")
   print file.read #This returns 'Syntax Error' when pressing F5
   input("Press enter to close")

def edit(): #However, the writing function works just fine.
        os.system('cls' if os.name == 'nt' else 'clear')
        print ("EDIT")
        print ("-------------")
        print ("Note: Naming this current document the same as a different document will replace the other document with this one.")
        filename = input("Plese enter a file name.")
        file = open(filename, "w")
        print ("Now, Write 5 lines.")
        line1 = input()
        line2 = input()
        line3 = input()
        file.write(line1)
        file.write("\n")
        file.write(line2)
        file.write("\n")
        file.write(line3)
        file.close()
        print ("File saved!")
        time.sleep(3)

它返回语法错误,我尝试file.read()但是显示:

<built-in method read of _io.TextIOWrapper object at 0x10ada08>

1 个答案:

答案 0 :(得分:4)

<built-in method read of _io.TextIOWrapper object at 0x10ada08>

这是函数的字符串表示。你想要的不是函数本身,而是调用函数。

换句话说,您需要file.read()而不是file.read

此外,在Python 3.x中,print是一个函数,而不是关键字,因此您需要print(file.read()),而不是print file.read()

顺便提一下,file is the name of a built-in function(虽然已弃用),所以你应该使用不同的变量名。