在Python中将文本文件拆分为整数

时间:2018-11-23 14:10:08

标签: python list split integer

with open("data1.txt", newline='') as f:
    r = csv.reader(f)
    s = list(r)

    dataList = []

我有一个数据文件,其中包含这样的二进制整数行:

00000 0
00001 0
00010 0

我希望能够将它们全部拆分为单个整数,以便获得完全相同的列表,但全部拆分为整数:

['0','0','0','0','0','0']
['0','0','0','0','1','0']
['0','0','0','1','0','0']

etc然后将每个追加到dataList。到目前为止,我可以将它们拆分为它们之间的空间,仅此而已

4 个答案:

答案 0 :(得分:2)

这可能是最简单的解决方案。请记住,字符串是可迭代的。

datalist = []
with open("data1.txt") as f:
    for line in f:
        line = line.replace(" ", "")
        line_list = list(line.strip())
        datalist.append(line_list)

答案 1 :(得分:2)

my_collection.find({ 'date':{ '$gte': date_start, '$lte': date_end } } 将为您提供字符串中的字符列表。

假设data1.txt为

list(string)

你可以写

00000 0
00001 0
00010 0

获得

with open('data1.txt') as f: 
    result = [list(line.strip().replace(' ', '')) for line in f] 

答案 2 :(得分:0)

此正则表达式将起作用:

import re
digits = "000001"
re.sub(r'([0-9])(?!$)', r'\1,', digits)

而不是上面的数字只是传递文件的每一行

答案 3 :(得分:0)

如果您可以使用第三方库,则可以使用Pandas:

import pandas as pd
from io import StringIO

x = StringIO("""00000 0
00001 0
00010 0""")

# replace x with 'file.csv'
df = pd.read_csv(x, delim_whitespace=True, dtype=object, header=None)

res = [[*x, y] for x, y in df.values]

结果:

[['0', '0', '0', '0', '0', '0'],
 ['0', '0', '0', '0', '1', '0'],
 ['0', '0', '0', '1', '0', '0']]