Python 如何从新行分隔的字符串中收集特定字符?

Python 如何从新行分隔的字符串中收集特定字符?,python,time,Python,Time,我有一个时间字符串列表,后跟电话号码:- 00:12:23, 0712313412352 01:14:52, 0712312341256 获取时间持续时间最简单的方法是什么 duration = S[0:8] # duration is first 8 characters 如果您知道时间的所有三个部分都将被格式化为两位数,这意味着整个时间将始终正好是8个字符长,那么我认为您的方法最简单:duration=S[:8] 否则,如果您知道时间后面总是跟一个逗号,您可以在逗号上拆分,并取第一个元

我有一个时间字符串列表,后跟电话号码:-

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

如果您知道时间的所有三个部分都将被格式化为两位数,这意味着整个时间将始终正好是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']

假设
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

您可以在这里尝试不同的正则表达式模式,也可以使用python作为解释器,最好的方法之一是使用正则表达式并创建有用的模式来查找所需的字符串部分

import re

string = "00:12:23, 0712313412352"
request = re.match(r"(^\d*....\d*)", string)
print request.group()
>>>00:12:23

你可以在这里尝试不同的正则表达式模式,你也可以在python上作为解释器

如果它总是那样的格式,你有什么问题?duration=s[:8]也是可能的。如果它总是那样的格式,你有什么问题?duration=s[:8]也可以。只需编辑我的注释即可遍历所有行:)只需编辑我的注释即可遍历所有行:)