1
我使用Python和我想讀一個文本文件,並更改第一個字符是最後ReadFile和變化字母
f = open("words.txt", 'r')
print f.readline()
k = f[1:]+f[0]
print k
f.close()
我使用Python和我想讀一個文本文件,並更改第一個字符是最後ReadFile和變化字母
f = open("words.txt", 'r')
print f.readline()
k = f[1:]+f[0]
print k
f.close()
如果要更改文件中的每一行,你可以使用fileinput.input與inplace=True
修改原始文件:
from fileinput import input
for line in input("foo.txt", inplace=True):
line = line.rstrip()
print(line[1:] + line[0])
如果你想第一個字符添加到剛剛沒有一次可以寫入NamedTemporaryFile讀取所有數據的最後一行,並做了shutil.move,以取代原來的文件更新臨時文件
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")
所以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")
但你將兩份數據保存在內存中,這樣可能無法用於非常大的文件。
你爲什麼只讀一行?您可能想要使用'file.read' –
問題是關於將第一個字符更改爲文本文件中的最後一個字符 –