我编写了一个脚本,将文本文件中的信息传输到sql数据库中,但我遇到了一个问题。我的脚本像这样拆分文本:
for file in os.listdir("C:\\alt\\her"):
if file:
Array= file.split("_")这会将字符串分割成一个数组,像这样的['Fieldbus', 'EtherNetIP', '848', '3217.txt'],然后我用我得到的信息做一些变量,如下所示:
Namearray = (Array[0]+"_"+Array[1])
JinkinsBuild = Array[2]
TestJob = Array[3].split(".txt")所以我在这里得到的输出是:
>>>Namearray = Fieldbus_EtherNetIP
>>>JinkinsBuild = 719
>>>TestJob = 1926这很完美,但是我的文件名看起来像这样:
Fieldbus_EtherNetIP_719_1926、SZTEST_gep40_smoketest_xconnect_298_1943和Fieldbus_Modbus_TCP_821_1702
我如何改进我的脚本,让它获取整个文本,在最后一个_之后,获取第一个数字,存储该数字,然后存储下一个数字,如下所示:
>>>Namearray = SZTEST_gep40_smoketest_xconnect
>>>JinkinsBuild = 298
>>>TestJob = 1943
#Or like this
>>>Namearray = Fieldbus_Modbus_TCP
>>>JinkinsBuild = 298
>>>TestJob = 1943发布于 2019-10-30 17:24:13
您可以使用rsplit()
files = ['SZTEST_gep40_smoketest_xconnect_298_1943',
'Fieldbus_EtherNetIP_719_1926',
'Fieldbus_Modbus_TCP_821_1702']
for file in files:
print(file.rsplit('_', 2))输出
['SZTEST_gep40_smoketest_xconnect', '298', '1943']
['Fieldbus_EtherNetIP', '719', '1926']
['Fieldbus_Modbus_TCP', '821', '1702']发布于 2019-10-30 17:24:59
这是regex的工作。
names = ['Fieldbus_EtherNetIP_719_1926', 'SZTEST_gep40_smoketest_xconnect_298_1943', 'Fieldbus_Modbus_TCP_821_1702']
for name in names:
match = re.match(r'(.*)_(\d+)_(\d+)$', name)
if match:
print(match.groups())https://stackoverflow.com/questions/58621991
复制相似问题