以 10 为基数的 int() 的文字无效:''

请问这里面的 “,”in key 是个啥?还有就是这个报错该怎么改呢,报错位置在倒数第二行,希望得到回复,提前感谢帮忙的da佬!

#1读取类型csv
typelist = []
for root,dirs,files in os.walk(csv_path,topdown=False): 
    for file in files:
        if file.endswith(".csv"):
            filename_path=os.path.join(root,file)
            typelist.append(filename_path)
"""typelist = []
for i in filelist:
    if "类型csv" in i and i.endswith(".csv") :
        typelist.append(i)
typelist = list(set(typelist))
try:
    typelist.sort(key = lambda x:int(x.split("\\")[-1].split(".")[3]))
except:
    typelist.sort(key = lambda x:int(x[:-4].split("\\")[-1].split("-")[2]))
    """

total_data = {} 
#类型csv - 各项数据
f=open("大区.txt", 'r')
大区 = eval(f.read())
f=open("小区.txt", 'r')
小区 = eval(f.read())
f=open("大小区外接矩形.txt")
exec(f.read())
for i in typelist:
    #print(i)
    key = i.split("\\")[-1]
    total_data[key] = {}
    df = pd.read_csv(i,engine = "python")
    pointlist = [(df["tb"][ii],df["E_sum"][ii]) for ii in range(len(df))]
    
    #2 计算亚群系相关数据:表里的第一第二、倒数第一第二列
    counter = {}
    for point in pointlist:    
        area = 获得亚群系(point)
        if area in counter:
            counter[area] += 1
        else:
            counter[area] = 1
            
    亚群系名,主导区,主导区占比,statu = 获得亚群系相关的四列数据(counter)
    total_data[key]["亚群系相关"] = {
        "亚群系": 亚群系名,
        "主导区": 主导区,
        "群丛状态": statu ,
        "主导区占比": 主导区占比
    }
    
    #3 群丛组、亚群丛组
    xy = [(df["XX"][ii],df["YY"][ii]) for ii in range(len(df))]
    c1,c2 = 获得大小区分区(xy)
    total_data[key]["植被区相关"] = {
        "大区": c1,
        "小区": c2,
    }
    #4 六边形图
    counter = {}
    for point in pointlist:    
        area = 获得六边形分区(point)
        if area in counter:
            counter[area] += 1
        else:
            counter[area] = 1
    六边形分区,主导区,主导区占比,statu = 获得六边形图相关的四列数据(counter)
    total_data[key]["六边形图相关"] = {
        "六边形分区": 六边形分区,
        "主导区": 主导区,
        "群丛状态": statu ,
        "主导区占比": 主导区占比
    }
    
l = []
for i in total_data:
    l.append([total_data[i]["亚群系相关"]["亚群系"],total_data[i]["亚群系相关"]["主导区"],total_data[i]["植被区相关"]["大区"],total_data[i]["植被区相关"]["小区"],i[:-4],total_data[i]["亚群系相关"]["群丛状态"],total_data[i]["亚群系相关"]["主导区占比"]])
    
def grade(key):
    mark = 0
    if "," in key: mark += 99999999
    
    def getcode(一节):
        for i in "P,B,CT,WT,ST,T,ERROR".split(","):
            if 一节.startswith(i):
                return 10**"P,B,CT,WT,ST,T,ERROR".split(",").index(i) + int(一节.split("-")[-1])
                break
    return [int(","in key)]+[getcode(i) for i in key.split(",")] 
l.sort(key = lambda x : [["稳态","单亚稳态","双亚稳态","混沌态"].index(x[-2])]+grade(x[0])+grade(x[1]) + [int(x[2]),int(x[3]),-float(x[6].split(",")[0][:-1])])    



img

int(x[2])
int(x[3])
这里其中某个不是数字

def grade中的def getcode中的return那句:10**"..."这个写法就很离谱,**表示阶乘,但你这个后面给整了个字符串。

参考 解决办法 https://www.pythonforbeginners.com/exceptions/valueerror-invalid-literal-for-int-with-base-10

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^