我有電話號碼的時間字符串遵循的列表: -如何從一個字符串中分隔出新行中的某些字符?
00:12:23, 0712313412352
01:14:52, 0712312341256
什麼是隻得到持續時間最簡單的方法?
duration = S[0:8] # duration is first 8 characters
我有電話號碼的時間字符串遵循的列表: -如何從一個字符串中分隔出新行中的某些字符?
00:12:23, 0712313412352
01:14:52, 0712312341256
什麼是隻得到持續時間最簡單的方法?
duration = S[0:8] # duration is first 8 characters
如果你知道的時候所有三個部分總是會被格式化爲兩位數,這意味着整個時間總是正好8個字符,那麼我覺得你的方式是最容易:duration = S[:8]
。否則,如果您知道您的時間總是後面跟着一個逗號,那麼您可以分開逗號並取第一個元素:duration = S.split(',')[0]
。
否則,你可以使用正則表達式,如果你不知道你的時間永遠是8個字符長,你不知道的時候會跟一個逗號:r'(\d\d?:\d\d?\d\d?)'
編輯:
在你的評論中,它說你想讀通過所有的行。如果你有一個包含所有由新行分隔的行的字符串,首先你需要將字符串拆分成單獨的行,通過分隔新行。然後你要遍歷,每次得到:
# Assume the text is stored in text_string
lines = text_string.split('\n')
times = [] # make an empty list to hold the times
for line in lines:
time = line[:8]
times.append(time) # Add the time to our list
print times # This will print our list of times
但是,這將通讀所有行或只是第一行? –
剛剛編輯我的評論遍歷所有行:) –
假設lines.txt
包含您的線路:
>>> [ x[:8] for x in open('lines.txt').readlines() ]
['00:12:23', '00:12:23', '00:12:23']
或者這一點,如果第一個字段是可變長度:
>>> [ x.split(',')[0] for x in open('lines.txt').readlines() ]
['00:12:23', '00:12:23', '00:12:23']
最好的方法之一是使用正則表達式並創建一個有用的模式來找到所需的字符串部分
import re
string = "00:12:23, 0712313412352"
request = re.match(r"(^\d*....\d*)", string)
print request.group()
>>>00:12:23
你可以在這裏https://regex101.com/嘗試不同的正則表達式,你也可以在Python作爲解釋
如果它總是正是格式,這有什麼錯,你有什麼? – moopet
duration = S [:8]也是可能的。 – parkamark