我有一个这样的文本文件
.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
发布于 2018-12-14 05:18:26
@dlink的答案是OK,但为了安全起见,您可能希望使用ast.literal_eval
来防止安全问题:
import ast
file_board = open('index.txt')
board = ast.literal_eval(file_board.read())
print board
print len(board)
发布于 2018-12-14 05:16:51
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]
如果你想要一个二维数组(你已经编辑了你的问题)。您可以使用正则表达式删除'‘和'’和空格。
import re
str2 = re.sub('[\[\] ]', '', str)
print str2
输出1,2,3,4,5,6,7,8,9
https://stackoverflow.com/questions/53770144
复制相似问题