如何从python3中的字符串中提取字符

时间:2019-06-03 21:54:05

标签: python-3.x

我有一个变量T,格式为YYYY-MM-DD_HH:00:00,其中YYYY是4位数字的年份,MM是月份,HH是小时。 我想提取单个字段。 首先,当我这样做时:

print("T = ",T)

我明白了

T =  [b'2' b'0' b'1' b'9' b'-' b'0' b'6' b'-' b'0' b'2' b'_' b'0' b'0' b':' b'0' b'0' b':' b'0' b'0']

在python2.7中,我这样做:

myList = list(T[0:4])
yr = "".join(myList)

myList = list(T[5:7])
mn = "".join(myList)

myList = list(T[8:10])
dy = "".join(myList)

myList = list(T[11:13])
hr = "".join(myList)

这些行给我数字。

但是在python 3.7中,我陷入了第一个领域

myList = list(T[0:4])
print("myList = ",myList) -> myList =  [b'2', b'0', b'1', b'9']
yr = "".join(myList)

给出错误

TypeError: sequence item 0: expected str instance, numpy.bytes_ found

但是

yr = b"".join(myList)

给予

print("yr = ",yr) -> yr =  b'2019'

从这里我无法提取年份数字。

print("yr = ",yr[0:3]) -> yr =  b'201'

print("yr = ",yr[1:4]) -> yr =  b'019'

我也尝试过

newyr = yr.replace("b", "")

和          p = yr.index(“ b”)#查找字母“ b”的位置     TypeError:参数应为整数或类似字节的对象,而不是“ str”

所有这些都不起作用。

如何摆脱b并保留年份数字。由于从2020年开始将不再维护python 2.7,因此我需要在python 3.x中使用我的代码

我们将为您提供帮助。

1 个答案:

答案 0 :(得分:0)

您需要解码文本。

def get_year(text):
    text = text.decode("utf-8")

    year = text.split('-')[0]

    return text, year

get_year(T[0])