我有一系列名为"x.tif"的文件,其中"x"是整数 我需要将这些文件分类到每个数字范围的文件夹中.
文件夹的顶层应该以百万计,例如,0—999999、1000000—199999 下一级文件夹应以千为单位,例如0—999、1000—1999
与其说是Python让我绊倒了,不如说是计算范围的实际数学,
The end result should look something like this
当然,我可以使用硬编码的范围来实现这一点,但我宁愿避免为每百万中的每千个输入一个巨大的elif语句.
我一直在try 使用divmod(),它可以像预期的那样工作,但我不能计算出我需要做什么来使这个动态,以便它可以想象出输入它的任何数字的范围.
def get_number_range(file_to_move):
file_number = file_to_move
try:
mod_calc_thou = divmod(int(file_number), 1000)
except ValueError:
self.mission_failed(file_to_move, reason="Not a number")
return False, False
try:
mod_calc_mil = divmod(int(file_number), 1000000)
except ValueError:
return False, False
thousands_range = mod_calc_thou[0] + 999
millions_range = mod_calc_mil[0] + 9999999
thousands_range_folder = f"{str(mod_calc_thou[0])}-{thousands_range}"
millionsths_range_folder = f"{str(mod_calc_mil[0])}-{millions_range}"
print(thousands_range_folder)
print(millionsths_range_folder)
print("First")
get_number_range("530")
#Should output 0-999 and 0-999999
print("Second")
get_number_range("1842888")
#Should output, 1842000-1842999, 1000000-1999999
print("Third")
get_number_range("19874")
#Should output 19000-19999, 0-999999