我对自己完成的在线作业有点怀疑。因此,任务要求我打开一个txt文件,并将所有字符设置为大写。
fh = open(f)
fhand=fh.read()
for line in fhand:
line=fhand.rstrip()
line=fhand.upper()
print(line)
break
这是我使用的代码。如果我不添加break语句,我将得到一个无限循环。有人能解释为什么会这样吗?
此时,将整个文件读取到fhand
中,然后for
循环迭代fhand
中的每个字符,因为此时它是一个大字符串。
因此,对于输入中的每个字符,您最终都会打印整个输入(大写(。
你可能想做一些更像:
with open("file.txt") as file_in:
for line in file_in.readlines():
print(line.strip().upper())
感谢@bloueteeth指出这里实际上并不需要readlines()
,这可以简化为:
with open("file.txt") as file_in:
for line in file_in:
print(line.strip().upper())