将每行的第一个单词/字母写入新文件

时间:2017-12-13 11:56:28

标签: python file

我有一个文件'master.sql',其中包含:

9844533324
1233463445

我想在'databases.sql'上写下第一个字母,如下所示:

a.b.c
d.e.f
g.h.i

这是我的代码,但只返回最后一个字母'g'。

a
d
g

我该如何解决这个问题?

3 个答案:

答案 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)