我用Java编写了一个脚本,将以下(Java)列表写入文件:
[-215 62 -155, -215 63 -155, -215 64 -155, -215 65 -155, -215 66 -155]
我的Python脚本需要读取该文件,如下所示,而无需修改该文件或创建新文件:
-215 62 -155
-215 63 -155
-215 64 -155
-215 65 -155
-215 66 -155
我编写了一个Python脚本,将字符串转换为一个列表:
input_file = open('C:/test.txt', 'rb')
for line in input_file:
blocks = line.split(",")
#Delete brackets
blocks[0] = blocks[0][1:]
blocks[len(blocks)-1] = blocks[len(blocks)-1].strip()[:-1]
for data in blocks:
print data.split()
输出:
['-215', '62', '-155']
['-215', '63', '-155']
['-215', '64', '-155']
['-215', '65', '-155']
['-215', '66', '-155']
正如你所看到的过程还没有结束,我需要删除括号和引号,使执行速度较慢。你知道吗
我尝试过的事情:
原始文件有900万个条目。所以,我的问题是:有可能只循环一次吗?
这将获取单行9000000项java list literal,并将其转换为新文件中所需的表。你知道吗
这看起来像一个XY problem。我怀疑您可以更容易地直接从Java程序创建正确的输出。如果你想在这方面得到帮助,请用你的Java代码发布一个新问题,说明你在那里尝试做什么。你知道吗
要直接回答这个问题,问题是
print()
调用str()
来创建列表的字符串表示。这将添加括号和逗号。很可能是对列表元素的str()
的递归调用在字符串元素周围添加单引号。你知道吗要解决此问题,可以迭代
split()
的结果并手动打印每个元素:这将在每行的末尾留下额外的空间。只要做一点工作,你就可以解决这个问题,如果需要的话。你知道吗
相关问题 更多 >
编程相关推荐