首页 > 解决方案 > Python :- 读取文本文件并将其转换为大写并写入第二个文件

问题描述

读取文本文件并将其转换为大写并写入第二个文件。

fo = open('/home/venkat/Desktop/Data Structure/Python/test.txt', 'r')
for x in fo.read():
    y = x.upper()
    fo1 = open('/home/venkat/Desktop/Data Structure/Python/write.txt', 'a')
    fo1.write(y)

test.txt 的内容:-我的名字是 Venkatesh

正确输出:- 我的名字是 VENKATESH

我得到 :- H我的名字是 VENKATES

H 不是在最后一个位置,而是将第一个字符移到第二个位置。为什么?

标签: pythonpython-3.xfile-writing

解决方案


问题是,您不再关闭文件。只有在文件关闭时,数据才会被确定写入。由于您为每个字符打开了一个新文件,并且没有明确关闭文件,因此写入的字符顺序不确定。

使用该语句打开文件with可确保正确关闭文件:

with open('/home/venkat/Desktop/Data Structure/Python/test.txt', 'r') as inp:
    y = inp.read().upper()
with open('/home/venkat/Desktop/Data Structure/Python/write.txt', 'a') as out:
    out.write(y)

推荐阅读