我有一个时间字符串列表,后跟电话号码: -
00:12:23, 0712313412352
01:14:52, 0712312341256
什么是获取持续时间的最简单方法?
duration = S[0:8] # duration is first 8 characters
答案 0 :(得分:1)
如果您知道时间的所有三个部分将始终被格式化为两位数,这意味着整个时间总是正好是8个字符,那么我认为您的方式最简单:duration = S[:8]
。
否则,如果你知道你的时间总是跟着一个逗号,你可以分开逗号并取第一个元素:duration = S.split(',')[0]
。
否则你可以使用正则表达式,如果你不知道你的时间总是8个字符,并且你不知道时间后面会跟一个逗号:r'(\d\d?:\d\d?\d\d?)'
< / p>
编辑:
在你的评论中,它表示你想要阅读所有内容。如果你有一个包含由新行分隔的所有行的字符串,首先你要通过拆分新行将字符串拆分成单独的行。然后你想要迭代并获得每次:
# 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
答案 1 :(得分:1)
假设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']
答案 2 :(得分:1)
最好的方法之一是使用正则表达式并创建一个有用的模式来查找所需的字符串部分
import re
string = "00:12:23, 0712313412352"
request = re.match(r"(^\d*....\d*)", string)
print request.group()
>>>00:12:23
你可以在https://regex101.com/上尝试不同的正则表达式模式,你也可以在python上作为解释器