我正在将文件中的数据存储到列表中,以分析其模式。我的意图是能够读取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
答案 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()
您不必给出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()