Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将每行的第一个单词/字母写入新文件_Python_File - Fatal编程技术网

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

Python 将每行的第一个单词/字母写入新文件,python,file,Python,File,我有一个文件“master.sql”,其中包含: a.b.c d.e.f g.h.i 我想在“databases.sql”中只写第一个字母,如下所示: a d 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:

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

a.b.c
d.e.f
g.h.i
我想在“databases.sql”中只写第一个字母,如下所示:

a
d
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)
这是我的代码,但只返回最后一个字母“g”

with open ('master.sql', 'r') as f:
    for line in f:
        x=(line.split('.')[0]) 


with open('databases.sql', 'w') as f:
    f.write(str(x))

如何修复此问题?

您需要在读取数据时写入数据,否则您将无法执行您想要的操作。幸运的是,
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
不会自动添加换行符。

您需要在读取数据时写入数据,否则您将无法执行所需操作。幸运的是,
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
不会自动添加换行符。

使用列表:

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')
使用列表:

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')

变量x接收所有值,但每个循环覆盖最后一个值。因此,结果是‘g’

要保存所有值,可以执行以下操作:

a
d
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)

变量x接收所有值,但每个循环覆盖最后一个值。因此,结果是‘g’

要保存所有值,可以执行以下操作:

a
d
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)

您从不存储
x
,因此您得到最后一个值…您从不存储
x
,因此您得到最后一个值。。。