Python 读取文件并更改字母
我正在使用python,我想读取一个文本文件,并将第一个字符更改为最后一个字符Python 读取文件并更改字母,python,Python,我正在使用python,我想读取一个文本文件,并将第一个字符更改为最后一个字符 f = open("words.txt", 'r') print f.readline() k = f[1:]+f[0] print k f.close() 如果要更改文件中的每一行,可以使用withinplace=True修改原始文件: from fileinput import input for line in input("foo.txt", inplace=True): line = line.
f = open("words.txt", 'r')
print f.readline()
k = f[1:]+f[0]
print k
f.close()
如果要更改文件中的每一行,可以使用with
inplace=True
修改原始文件:
from fileinput import input
for line in input("foo.txt", inplace=True):
line = line.rstrip()
print(line[1:] + line[0])
如果您希望仅将第一个字符添加到最后一行,而不同时读取所有数据,则可以将其写入,并使用更新的tempfile替换原始文件
from tempfile import NamedTemporaryFile
from shutil import move
with open("foo.txt") as f, NamedTemporaryFile("w", dir=".", delete=False) as out:
ln = sum(1 for _ in f)
f.seek(0)
start = next(f)
ch = start[0]
out.write(start[1:])
for ind, line in enumerate(f, 2):
if ind == ln:
out.write("{}\n".format(line.rstrip()+ch))
else:
out.write(line)
move(out.name,"foo.txt")
So foo.txt:
123
456
789
将替换为:
23
456
7891
您可以调用.read并对其进行切片和替换,这对于小文件很好:
from tempfile import NamedTemporaryFile
from shutil import move
with open("foo.txt") as f, NamedTemporaryFile("w", dir=".", delete=False) as out:
data = f.read().rstrip()
out.write("{}\n".format(data[1:] + data[0]))
move(out.name,"foo.txt")
但是您在内存中保留了两份数据副本,因此可能无法处理非常大的文件。为什么您只读取一行?您可能需要使用
文件。读取问题在于将文本文件中的第一个字符更改为最后一个字符