我有以下清单:
1 2 3 4 | >>> poly 'C:\\04-las_clip_inside_area\\16x16grids_1pp_fsa.shp' >>> record 1373155 |
我想创造:
1 | 'C:\\04-las_clip_inside_area\\16x16grids_1pp_fsa_1373155.txt' |
为了得到"C: 4-las_clip_inside_area16x16grids_1pp_fsa16x16grids_1pp_fsa"部分,我希望进行拆分。
我尝试了这个两行代码的解决方案:
1 2 3 | mylist = [poly.split(".")[0],"_", record,".txt"] >>> mylist ['C:\\04-las_clip_inside_area\\16x16grids_1pp_fsa', '_', 1373155, '.txt'] |
从这里开始,阅读Python join中的示例,为什么是string.join(list)而不是list.join(string)?
我找到了这个关节的解,但我得到了这个错误信息:
1 2 3 4 | >>> mylist.join("") Traceback (most recent call last): File"<interactive input>", line 1, in <module> AttributeError: 'list' object has no attribute 'join' |
如果我使用:
1 2 3 4 | >>>"".join(mylist) Traceback (most recent call last): File"<interactive input>", line 1, in <module> TypeError: sequence item 2: expected string, int found |
Python join:为什么是string.join(list)而不是list.join(string)?
所以有
1 | "".join(mylist) |
而不是
1 | mylist.join("") |
你的错误。
要解决您的
1 | mylist= [poly.split(".")[0],"_",str(record),".txt"] |
或者直接写:
1 | "{}_{}.txt".format(poly.split(".")[0], record) |
1 2 3 4 5 6 7 8 | >>> from os import path >>> >>> path.splitext(poly) ('C:\\04-las_clip_inside_area\\16x16grids_1pp_fsa', '.shp') >>> >>> filename, ext = path.splitext(poly) >>>"{0}_{1}.txt".format(filename, record) 'C:\\04-las_clip_inside_area\\16x16grids_1pp_fsa_1373155.txt' |
1 2 3 4 | >>> poly = 'C:\\04-las_clip_inside_area\\16x16grids_1pp_fsa.shp' >>> record = 1373155 >>>"{}_{}.txt".format(poly.rpartition('.')[0], record) 'C:\\04-las_clip_inside_area\\16x16grids_1pp_fsa_1373155.txt' |
或者如果你坚持使用
1 2 | >>>"".join([poly.rpartition('.')[0],"_", str(record),".txt"]) 'C:\\04-las_clip_inside_area\\16x16grids_1pp_fsa_1373155.txt' |
使用
您需要将记录转换为字符串。
1 | mylist= [poly.split(".")[0],"_",str(record),".txt"] |