[英]Selectively Split Python String by Position
我有一個字符串,我幾乎已經將它拆分到我需要的水平,但不完全。 我的字符串看起來像這樣開始:
str1 =
Out[135]: 'C:\\\\Users\\\\U321103\\\\OneDrive - IBERDROLA S.A\\VARIABILIDAD CLIMATICA\\\\VORTEX\\\\WIND8\\349039.SPAIN.ESTE.CARRASCOSA.Power.csv'
我使用了一種拆分技術來把它弄到這里:
str2 = str1.split('WIND8\\')[1].split('.csv')[0]
Out[132]: '349039.SPAIN.ESTE.CARRASCOSA.Power'
但是,我真的需要這個最終答案:
str3 = SPAIN.ESTE.Power
而且,我不確定如何刪除“SPAIN”之前以及“ESTE”和“.Power”之間的字符串內容。 “ESTE”這個詞會改變——意味着“ESTE”是一個國家的一個地區,每次運行腳本都會改變。 在 str1 變量中,每次運行腳本時,這些子集字符串都會發生變化:“349039”、“SPAIN”、“ESTE”、“CARRASCOSA”所以我認為代碼需要 select 由 position 之間的句點“。” 在str2中。 謝謝您的幫助!
正如 McLovin 在評論中所說,您應該能夠拆分.
然后通過索引重新加入,假設結構保持不變。
COUNTRY, REGION, UTILITY = 1, 2, -1
str2 = '349039.SPAIN.ESTE.CARRASCOSA.Power'
substrs = str2.split('.')
str3 = '.'.join([substrs[i] for i in [COUNTRY, REGION, UTILITY]])
str3
>> 'SPAIN.ESTE.Power'
對於更復雜/靈活的拆分和解析,請考慮使用帶有re
模塊的正則表達式。 有一點學習曲線,但它們非常有用,並且有很多教程。
編輯以匹配 joseville 的建議
_str = 'C:\\\\Users\\\\U321103\\\\OneDrive - IBERDROLA S.A\\VARIABILIDAD CLIMATICA\\\\VORTEX\\\\WIND8\\349039.SPAIN.ESTE.CARRASCOSA.Power.csv'
# split by '\', than by '.', than slice.
_str = _str.split('\\')[-1].split('.')[1:-1]
Output:
['SPAIN', 'ESTE', 'CARRASCOSA', 'Power']
如果你想加入:
_str = '.'.join(_str)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.