我想选择数字超过60的痕迹。
文件名示例:bloc119_5950_6000.npy
该文件的编号为:119
但错误是它显示所有文件的所有数量而没有任何比较:
def Extract_Number_Block(block):
NbrBlock = block.split('bloc')[1].split('_')[0]
return NbrBlock
path_For_Numpy_blocks='/data/sas/blockData'
for block in os.listdir(path_For_Numpy_blocks):
NbrB= Extract_Number_Block(block)
print(NbrB)
A=60
if NbrB>A:
print(NbrB)
else:
print('Erreur')
答案 0 :(得分:0)
您正在将字符串NbrB
(文件名的一部分)与整数A
进行比较。这不会给你任何有意义的比较结果(Python 2)或引发错误(Python 3)。
然而,您可以将字符串转换为数字:
def Extract_Number_Block(block):
NbrBlock = block.split('bloc')[1].split('_')[0]
return int(NbrBlock)
请注意int()
周围的NbrBlock
,它会将字符串(如果可能)转换为整数。
答案 1 :(得分:0)
您的函数返回一个字符串。与int
进行比较def Extract_Number_Block(block):
NbrBlock = block.split('bloc')[1].split('_')[0]
return int(NbrBlock) #converting to int
path_For_Numpy_blocks='/data/sas/blockData'
for block in os.listdir(path_For_Numpy_blocks):
NbrB= Extract_Number_Block(block)
print(NbrB)
A=60
if NbrB>A:
print(NbrB)
else:
print('Erreur')
答案 2 :(得分:0)
我认为你需要将返回的NbrBlock
转换为整数,因为split将作为字符串返回。所以你有A = 60,但你的NbrB
是' 119'这是字符串。所以,只需将NbrB
或NbrNBlock
转换为整数。
见下文:
def Extract_Number_Block(block):
NbrBlock = block.split('bloc')[1].split('_')[0]
return int(NbrBlock)