python - 写入具有特定列数的文件
问题描述
我需要编写一个具有特定列数的文本文档(在这种情况下总是有 16 个)。我发现实现这一点的方法是:检查我想要的值所在的数组(列表)的 len,然后除以 16,得到足以精确等于 16 列的行数。当然,有一种更正确的方法来优化这个过程。我利用来问的另一个问题是(因为我真的不知道该怎么做):如何在 16 列中写入并始终留下与该数组的最大数量相等的缩进(即:8500 = 4 个字符= 4 个空格)。像这样的东西:
这是我的代码:
f = open('Questions.txt','r')
my_list = [line.split(',')[0] for line in f]
ff = open('Questions_new.txt','w')
i=0
x=len(my_list)
rows = int(round(len(my_list)//16))
for i in range(rows):
row = my_list [i::rows]
ff.write(' '.join(str(x) for x in row)+'\n')
使用 line.split 是因为我从文本文档(下面的示例)中提取文本文档的所有字符,直到找到逗号:
1213,4214 12312
13,1231 123
45,343
他只是为我保留信息:
1213
13
45
如果有人可以提供帮助,我将不胜感激。
解决方案
要回答您关于行数的第一个问题,我认为您的方法非常有效。构建此结构的另一种方法包括:
- 有一个 while 循环,它在每次迭代中从文本文件中读取一个新值。在 while 循环内,为
n_rows
and保留一个计数器n_cols
。- 将新值写入
output[n_rows][n_cols]
当前行右侧的输出中 - 如果
n_cols == 16
, 递增n_row++
- 将新值写入
关于你的第二个问题,你可以:
- 第一遍读取所有值,将它们存储到数组中
- 将新值添加到数组时,将位数与当前最大位数进行比较
- 将数组中的值复制到输出文本文件中,填充到最大位数
推荐阅读
- css - 更改 WooCommerce 单品中的自定义折扣价格百分比样式
- javascript - 当用户键入输入栏时通过表格过滤
- python - 我的函数不会从我的字符串列表中读取高低天气数据
- r - 在 R 中进行模糊匹配的更有效方法?
- javascript - 如何在给定 DB FS 的情况下计算 DB SPL
- ruby-on-rails - 如何修复 Rails + Heroku 中未定义的方法错误
- scala - If else 在单个语句中:scala
- kubernetes - 使用 Kubernetes 为 Openfaas 的具有相同命名空间的 pod 设置配额
- java - 尝试更改片段背景时出现 NullPointerException(空对象引用上的 setBackgroundResource)
- java - Mockito.`when`(....) 正在调用实际实现。?