我有一个文件'master.sql',其中包含:
9844533324
1233463445
我想在'databases.sql'上写下第一个字母,如下所示:
a.b.c
d.e.f
g.h.i
这是我的代码,但只返回最后一个字母'g'。
a
d
g
我该如何解决这个问题?
答案 0 :(得分:4)
您需要在阅读时编写数据,否则您将无法按照自己的意愿行事。幸运的是,with
允许您同时打开多个文件。这应该适合你。
with open ('master.sql', 'r') as f1, open('databases.sql', 'w') as f2:
for line in f1:
f2.write(line.split('.')[0] + '\n')
请勿忘记撰写换行符,因为file.write
并不会自动添加换行符。
答案 1 :(得分:0)
使用列表:
x = []
with open('master.sql', 'r') as f:
for line in f.readlines():
x.append(line.split('.')[0])
with open('databases.sql', 'w') as f:
for word in x:
f.write(str(word)+'\n')
答案 2 :(得分:0)
变量x接收所有值,但每个循环都会覆盖最后一个值。因此,结果是'g'。
要保存所有值,您可以这样做:
lst = []
with open ('master.sql', 'r') as f:
for line in f:
lst.append(line.split('.')[0])
x = '\n'.join(lst)
with open('databases.sql', 'w') as f:
f.write(x)