奇怪的字符和属性的不足。蟒蛇

时间:2015-07-10 15:07:58

标签: python attributes character

我已经创建了一个功能并且卡在它上面。

功能的含义:

  1. 用户输入文件,编号和自己的姓名。

  2. 程序将名称写在文件末尾的数字'次。

  3. 然后打印出文件的内容。

  4. 问题是什么?

    1. 当程序读取文件时,下面有奇怪的字符和大空间。
    2. 喜欢这样:Pow圀爀搀搀搀爀爀爀攀猀攀猀ഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀ

      1. 错误:' str'对象没有属性' close'。

        def filemania():
        
            print "Great! This way is called \"Filemania\""
        
            file_name = raw_input("Type in any text file> ")
            enter_1 = int(raw_input("Enter an integer> "))
            enter_2 = raw_input("Enter your name> ")
        
            print "Now your name will apear in the file %d times at the end" % enter_1
        
            open_file = open(file_name, 'a+')
            listok = []
        
            while len(listok) < enter_1:
                open_file.write(enter_2 + " ")
                listok.append(enter_2) 
        
            print "Contains of the file:"
            read_file = open_file.read()
            print read_file
            file_name.close()
        
        filemania()
        
      2. 我认为问题出在这里:

        open_file = open(file_name,&#39; a +&#39;)

        有人知道如何解决这些问题吗?

2 个答案:

答案 0 :(得分:0)

首先设置file_name = raw_input("Type in any text file> "),因此您尝试使用file_name.close()关闭字符串:

当您写入open_file时,您将指针移动到文件的末尾,因为您要追加,因此read_file = open_file.read()不会按照您的想法进行操作。

您需要再次寻找文件的开头以打印内容open_file.seek(0)

def filemania():
    print "Great! This way is called \"Filemania\""
    file_name = raw_input("Type in any text file> ")
    enter_1 = int(raw_input("Enter an integer> "))
    enter_2 = raw_input("Enter your name> ")

    print "Now your name will apear in the file %d times at the end" % enter_1

    # with automatically closes your files
    with open(file_name, 'a+') as open_file:
        listok = []
        # use range      
        for _ in range(enter_1):
            open_file.write(enter_2 + " ")
            listok.append(enter_2)
        print "Contains of the file:"
        # move pointer to start of the file again
        open_file.seek(0) 
        read_file = open_file.read()
        print read_file

filemania()

答案 1 :(得分:-1)

对于第二个错误,您尝试关闭file_name,这是原始输入字符串。您的意思是关闭open_file

试试并报告回来。