gpt4 book ai didi

python - ArcGIS:Python - 将逗号添加到字符串

转载 作者:行者123 更新时间:2023-12-01 01:50:06 27 4
gpt4 key购买 nike

在 ArcGIS 中,我将大量区域多边形与另一组相交,并记录了原始区域 ID 以及它们所连接的数据。然而,创建的字符串是一长串数字,范围从 11 到 77(每个 ID 长 11 个字符)。我希望在每个文件之间添加一个“,”,以便以后更容易阅读和导出为 .csv 文件。为此,我编写了以下代码:

def StringSplit(StrO,X):
StrN = StrO #Recording original string
StrLen = len(StrN)
BStr = StrLen/X #How many segments are inside of one string
StrC = BStr - 1 #How many times it should loop
if StrC > 0:
while StrC > 1:
StrN = StrN[ :((X * StrC) + 1)] + "," + StrN[(X * StrC): ]
StrC = StrC - 1
while StrC == 1:
StrN = StrN[:X+1] + "," + StrN[(X*StrC):]
StrC = 0
while StrC == 0:
return StrN
else:
return StrN

主要问题是它如何逐步遍历具有不同长度(11 -> 77)的多行(76)。我让最后一部分工作了,只是内部循环没有工作,因为它返回错误或长度超过 22 个字符的字符串的错误输出。

现在:

1. 01234567890 returns 01234567890

2. 0123456789001234567890 returns 01234567890,01234567890

3. 012345678900123456789001234567890 returns either: Error or ,, or even ,,01234567890

我知道这可能是我错过的一些非常简单的东西,但我似乎不记得它是什么......

最佳答案

可以通过正则表达式轻松完成。这些 ......... 是 11 个点,用于每 11 个字符进行分割。

您可以使用 pandas 从数组输出创建 csv

代码:

import re

x = re.findall('...........', '01234567890012345678900123456789001234567890')

print(x)
myString = ",".join(x)

print(myString)

输出:

['01234567890', '01234567890', '01234567890', '01234567890']
01234567890,01234567890,01234567890,01234567890

为了简单起见,您可以这样做

代码:

x = ",".join(re.findall('...........', '01234567890012345678900123456789001234567890'))


print(x)

关于python - ArcGIS:Python - 将逗号添加到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50810801/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com