我们说我有这个文本文件:date.txt。一个月|天|年
January|20|2014
February|10|
March|5|2013
我想在二月| 10 |之后放入2012。我怎么能这样做?
答案 0 :(得分:5)
您需要将文件读入内存,修改所需的行并写回文件。
temp = open('temp', 'wb')
with open('date.txt', 'r') as f:
for line in f:
if line.startswith('February'):
line = line.strip() + '2012\n'
temp.write(line)
temp.close()
shutils.move('temp', 'data.txt')
如果您不想使用临时文件:
with open('date.txt', 'rw') as f:
lines = f.readlines()
for i, line in enumerate(lines):
if line.startswith('February'):
line[i] = line[i].strip() + '2012\n'
f.seek(0)
for line in lines:
f.write(line)
答案 1 :(得分:0)
您可以使用csv
模块,例如:
import csv
data = [
"January|20|2014",
"February|10|",
"March|5|2013"
]
reader = csv.reader(data, delimiter="|")
for line in reader:
line = [i if i != "" else "2012" for i in line]
print(line)
请注意:csv.reader()
将任何可迭代对象作为参数。因此,您可以轻松地将文件对象传递给它