如何将此格式的文件中的字符串转换为数字数组?

2024-04-19 10:58:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个这样的文本文件

.txt

1, 2, 3, 4, 5, 6, 7, 8, 9

我想把它看作python中的一个数组,这就是我目前所拥有的

python文件

file_board = open('index.txt')
board = file_board.read().split(',')
print board
print len(board)

输出

['[[1', ' 2', ' 3]', ' [4', ' 5', ' 6]', ' [7', ' 8', ' 9]]\n']
9
list index out of range

所以我要做的是如何把它放到二维数组中进行操作

注意我希望在没有任何外部库的情况下执行此操作,内置库也可以

顺便说一下,我想把这个写回一个新文件 格式为

1, 2, 3, 4, 5, 6, 7, 8, 9

Tags: 文件ofboardtxtreadindexlen数组
2条回答

@dlink的答案是可以的,但为了安全起见,您可能需要使用ast.literal_eval来防止安全问题:

import ast

file_board = open('index.txt')
board = ast.literal_eval(file_board.read())
print board
print len(board)
str = '[[1, 2, 3], [4, 5, 6], [7, 8, 9]]'
data = eval(str)
for rec in data:
    print rec

输出

[1, 2, 3]
[4, 5, 6]
[7, 8, 9]

如果你想要一个二维数组(你编辑了你的问题)。可以使用regex删除“[”和“]”以及空格。你知道吗

import re
str2 = re.sub('[\[\] ]', '', str)
print str2

输出 1、2、3、4、5、6、7、8、9

相关问题 更多 >