Python 将每行的第一个单词/字母写入新文件
我有一个文件“master.sql”,其中包含: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:
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
,因此您得到最后一个值。。。