我有以下列表:
>>> poly
'C:\\04-las_clip_inside_area\\16x16grids_1pp_fsa.shp'
>>> record
1373155
我想创建:
'C:\\04-las_clip_inside_area\\16x16grids_1pp_fsa_1373155.txt'
我希望拆分以获得“C:\04-las_clip_inside_area\16x16grids_1pp_fsa16x16grids_1pp_fsa”部分。
我试过这个两行代码的解决方案:
mylist = [poly.split(".")[0], "_", record, ".txt"]
>>> mylist
['C:\\04-las_clip_inside_area\\16x16grids_1pp_fsa', '_', 1373155, '.txt']
从这里开始,阅读 Python join, why is it string.join(list) instead of list.join(string)? 中的示例.
我发现这个解决方案是联合的,但我收到了这个错误信息:
>>> mylist.join("")
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
AttributeError: 'list' object has no attribute 'join'
另外如果我使用:
>>> "".join(mylist)
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
TypeError: sequence item 2: expected string, int found
最佳答案
Python join: why is it string.join(list) instead of list.join(string)?
所以有
"".join(mylist)
代替
mylist.join("")
这是你的错误。
要解决您的 int/string
问题,请将 int 转换为字符串:
mylist= [poly.split(".")[0],"_",str(record),".txt"]
或者直接写:
"{}_{}.txt".format(poly.split(".")[0], record)
关于python - 在 Python 中拆分连接字符串的正确而优雅的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12840223/