簡體   English   中英

通過 Position 選擇性拆分 Python 字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM