首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >返回到文本文件中的前一行

返回到文本文件中的前一行
EN

Stack Overflow用户
提问于 2014-05-12 06:51:00
回答 1查看 247关注 0票数 0

我有一个文本文件,其中我想从以下三个列表中写入值:

代码语言:javascript
运行
复制
a = [1,2,3]
b = [4,3,2]
c = [7,8,9]

格式:

代码语言:javascript
运行
复制
a-b
c

因此,文本文件中的排列如下:

代码语言:javascript
运行
复制
1-4   2-3   3-2  
7     8     9

我已经试过了

for x,y,z in zip(a,b,c): ofile.write("p%s-%s\n%s\t" %(x,y,z))

但是,文本文件中的输出排列如下:

代码语言:javascript
运行
复制
1-4
7     2-3
8     3-2
9

任何关于如何回到第一行并根据需要安排文本的建议都是值得赞赏的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-12 07:00:00

ab单独压缩,写这一行,然后在下一行上写c

代码语言:javascript
运行
复制
ofile.write('\t'.join(['{}-{}'.format(*pair) for pair in zip(a, b)]) + '\n')
ofile.write('\t'.join(map(str, c)) + '\n')

这使用str.join()在一行的值之间放置制表符。

使用 module处理将值转换为字符串和编写制表符和行分隔符会更容易:

代码语言:javascript
运行
复制
writer = csv.writer(ofile, delimiter='\t')
writer.writerow(['{}-{}'.format(*pair) for pair in zip(a b)])
writer.writerow(c)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23602704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档