所以我对Python完全不熟悉,也无法弄清楚我的代码有什么问题。
我需要编写一个程序,询问现有文本文件的名称,然后编写另一个文件的名称,这不一定需要存在。该程序的任务是获取第一个文件的内容,将其转换为大写字母并粘贴到第二个文件。然后它应该返回文件中使用的符号数。
代码是:
file1 = input("The name of the first text file: ")
file2 = input("The name of the second file: ")
f = open(file1)
file1content = f.read()
f.close
f2 = open(file2, "w")
file2content = f2.write(file1content.upper())
f2.close
print("There is ", len(str(file2content)), "symbols in the second file.")
我创建了两个文本文件来检查Python是否正确执行了操作。原来文件的长度不正确,因为我的文件中有18个符号,Python显示有2个符号。
你能帮我解决这个问题吗?
答案 0 :(得分:1)
我在您的代码中看到的问题:
close
是一种方法,因此您需要使用()
运算符,否则f.close
无法按照您的想法执行操作。with
形式打开文件 - 然后它会在结束时自动关闭。write
method未返回任何内容,因此file2content = f2.write(file1content.upper())
为None
(未经测试)但我会写这样的程序:
file1 = input("The name of the first text file: ")
file2 = input("The name of the second file: ")
chars=0
with open(file1) as f, open(file2, 'w') as f2:
for line in f:
f2.write(line.upper())
chars+=len(line)
print("There are ", chars, "symbols in the second file.")
答案 1 :(得分:0)
input()
does not do您的期望,请改用raw_input()
。