将字符串转换为 CSV 文件的 pythonic



我有一个字符串,一个很长的字符串,我想将其导入到excel中以供进一步处理。 字符串的形式类似于下面的虚拟代码。 我的代码正在工作,做这项工作,但我很想看到处理它的pythonic方式,因为我觉得它是一个相当糟糕的非灵活代码。

info = 'de 23 de 23 de 23 de 23 de 23 de 23 de 23 de 23 de 23 de 23 de 23 de 
23 de 23 de 23 de 23 de 23 de 23 de 23'
info = [x.strip() for x in info.split(" ")]
file = open('testfile.txt','w') 
for i in range (0,len(info),2):
file.write(info[i]) 
file.write(",")
file.write(info[i+1]) 
file.write("n") 
file.close() 
print("Done")

输出应该是:

de, 23
de, 23
de, 23

更紧凑的方法是:

info = 'de 23 de 23 de 23 de 23 de 23 de 23 de 23 de 23 de 23' +
'de 23 de 23 de 23 de 23 de 23 de 23 de 23 de 23 de 23'
info = info.split()
with open('testfile.txt', 'w') as f:
f.write('n'.join(a + ',' + b for a, b in zip(info[::2], info[1::2])))

其中info[::2]包含具有偶数索引的所有元素,info[1::2]包含具有奇数索引的所有元素。

也许这可能是一个改进:

info = 'de 23 de 23 de 23 de 23 de 23 de 23 de 23 de 23 de 23 de 23 de 23 de 
23 de 23 de 23 de 23 de 23 de 23 de 23'
days = info.split()
output_form = "{},{}n"
with open('testfile.txt','w') as file:
for i in range (0,len(days),2):
file.write(output_form.format(days[i],days[i+1]))
print("Done")

最新更新