我已经创建了一个功能并且卡在它上面。
功能的含义:
用户输入文件,编号和自己的姓名。
程序将名称写在文件末尾的数字'次。
然后打印出文件的内容。
问题是什么?
喜欢这样:Pow圀爀搀搀搀爀爀爀攀猀攀猀ഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀഀ
错误:' 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()
我认为问题出在这里:
open_file = open(file_name,&#39; a +&#39;)
有人知道如何解决这些问题吗?
答案 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
试试并报告回来。