从具有字符串和整数的列表中识别整数

时间:2019-08-05 19:44:58

标签: python list

我正在将文件中的数据存储到列表中,以分析其模式。我的意图是能够读取txt或csv文件。我正在努力寻找一种方法来分析来自文件存储的原始列表中的信息,以标识该列表中的整数。

我尝试了.isdigit()内置方法,但是尽管'data'列表是数字,逗号和一些字符串,但是返回False。 “数据”列表中没有仅包含整数的字符串数字。

它可以按预期工作,直到noCheck函数(该函数仅打印ValueError)为止。

__201901_20.

非常感谢您的帮助

编辑:这是txt文件中的数据:

08,30,34,44,45,57 \ n09,18,20,42,43,46 \ n14,19,30,45,48,58 \ n02,04,17,28,37,45 \ n14,18,23,28,36,37 \ n05,08,40,41,43,45 \ n18,25,29,32,35,58 \ n04,10,11,17,53,54 \ n24 ,30,44,50,56,57

2 个答案:

答案 0 :(得分:0)

您的问题要求识别正在读取的行中是否有任何整数。您的代码当前仅将行强制转换为整数,而不是检查它们是否为整数。

我不知道您文件的外观,但是您可以这样做:

SA_RESTART

您还希望在读取文件的最后检查IntData的内容,而不是在每一行之后引发异常。

您只需添加:

// with this form, flags and signal mask are initialized by default to all-bits-zero
sigaction(SIGINT, & (struct sigaction) { .sa_handler = handler }, NULL);

答案 1 :(得分:0)

data = []
IntData = []

def analyse():
    try:
        openfile="ex1data1.txt"
        with open(openfile) as f:
            read = f.read()
            data.append(read)
            print(data)
            next = input('Press any Key to continue..')
            if next == '':
                noCheck()
    except FileNotFoundError:
        print('No File Found')

def noCheck():
    for number in data:
        num=number.replace('\\n',',')
        numlist=num.split(',')
        for i in numlist:
            try:
                IntData.append(int(i))
                print(IntData)
            except ValueError:
                print('No numbers found')


analyse()

enter image description here

您不必给出int('2,3,4,\ n'),而必须给出int(2)...

所以使用

print (re.findall("\d+", s))

data = []
IntData = []
import re


def analyse():
    try:
        openfile="ex1data1.txt"
        with open(openfile) as f:
            read = f.read()
            data.append(read)
            print(data)
            next = input('Press any Key to continue..')
            if next == '':
                noCheck()
    except FileNotFoundError:
        print('No File Found')

def noCheck():
    for i in data:
        for k in re.findall("\d+", i):
            IntData.append(k)


analyse()

以获取更多信息:Extract Number from String in Python