python - 用字符串和整数从列表中识别整数
问题描述
我将文件中的数据存储到列表中以分析它的模式。我的目的是能够读取 txt 或 csv 文件。我正在努力寻找一种方法来分析从文件中存储的原始列表中的信息,以识别该列表中的整数。
我尝试了 .isdigit() 内置方法,但它返回 False,尽管“数据”列表是数字、逗号和一些字符串。“数据”列表没有字符串数字,只有整数。
它按预期工作,直到 noCheck 函数只打印 ValueError。
data = []
IntData = []
def analyse():
try:
openfile = input('Enter file path: ')
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:
try:
IntData.append(int(number))
print(IntData)
except ValueError:
print('No numbers found')
analyse()
任何帮助是极大的赞赏
编辑:这是 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
解决方案
您的问题是要确定正在读取的行中是否有任何整数。您的代码目前只是将行转换为整数,而不是检查它们是否为整数。
我不知道你的文件是什么样子,但你可以这样做:
for line in data:
if(isinstance(line, int)):
IntData.append(line)
您还想在读取文件的最后检查 IntData 的内容,而不是在每一行之后抛出异常。
您可以简单地添加:
if (len(IntData) == 0):
print("No integers")
else:
print("There are integers")
推荐阅读
- python - 在forms.py和views.py中创建chiled类字段时如何更改父类中的字段?
- flutter - 是否可以在 Flutter 中使用路由器实时查看连接的设备?
- c++ - 数组c ++中的大括号初始化
- php - PHP - document.xml 到 document.pdf
- r - R 中带有“aqp”的彩色体积分数的土壤剖面
- javascript - javascript中的数字OCR(光学识别)
- .htaccess - 带有和不带斜杠的重定向到两个不同的 URL
- oracle - PL/SQL - 为存储过程的数字参数定义精度和小数位数
- javascript - v-for 组件不在生产机器上渲染但在本地工作
- sql - 从 xmlType 中提取值