我有电话号码的时间字符串遵循的列表: -如何从一个字符串中分隔出新行中的某些字符?
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