Vastsea 发表于 2020-5-14 08:33:45

Python中如何截取字符?

Python在网页中获得的字符是

总数:123456

只想将数字部分存入Excel,在Python中,如何截取字符?

现在的效果:

总数
总数:38351
总数:145450
总数:231720
总数:29420
总数:72861
总数:20586
总数:37661
总数:40405

想要的效果:

总数
38351
145450
231720
29420
72861
20586
37661
40405

heidern0612 发表于 2020-5-14 08:39:02

字符串切片?

比如这个“总数:38351”,只要数字的话,字符串切片就是

liuzhengyuan 发表于 2020-5-14 08:41:42

本帖最后由 liuzhengyuan 于 2020-5-14 08:56 编辑

split("总数:")
>>> s = """总数:38351
总数:145450
总数:231720
总数:29420
总数:72861
总数:20586
总数:37661
总数:40405"""
>>> lst = s.split("总数:")
>>> lst
['', '38351\n', '145450\n', '231720\n', '29420\n', '72861\n', '20586\n', '37661\n', '40405']

xiaosi4081 发表于 2020-5-14 08:41:55

本帖最后由 xiaosi4081 于 2020-5-14 09:06 编辑

heidern0612 发表于 2020-5-14 08:39
字符串切片?

比如这个“总数:38351”,只要数字的话,字符串切片就是

例:
import re
count = len(open("test.txt",'r').readlines())
count=count+1
s = open("test.txt",'r',encoding='gbk')
t="" #这边要给t初始化,不然下面会报错
for i in range(1,count):
    j=s.readline()
    t=t+re.sub("\d","",j)
    t=t+'\n'
print(t)


test.txt:
总数
总数:38351
总数:145450
总数:231720
总数:29420
总数:72861
总数:20586
总数:37661
总数:40405

xiaosi4081 发表于 2020-5-14 08:44:47

或者你直接提取数字

KevinHu 发表于 2020-5-14 08:45:57

或者
s = "总数:38351"
s = s.split(":")

Twilight6 发表于 2020-5-14 08:57:33

本帖最后由 Twilight6 于 2020-5-14 09:22 编辑

这个有明显规律的最简单了,直接列表切片就好
string
你想麻烦一点,用正则也行:
re.findall('总数:(\d*)',string)

xiaosi4081 发表于 2020-5-14 09:08:09

Twilight6 发表于 2020-5-14 08:57
这个有明显规律的最简单了,直接列表切片就好

你想麻烦一点,用正则也行:

你那个正则不行

Twilight6 发表于 2020-5-14 09:09:18

xiaosi4081 发表于 2020-5-14 09:08
你那个正则不行

怎么说不行,指出错误我改改

xiaosi4081 发表于 2020-5-14 09:10:44

Twilight6 发表于 2020-5-14 09:09
怎么说不行,指出错误我改改

我刚刚试了,结果是空的:
[]

Twilight6 发表于 2020-5-14 09:14:48

xiaosi4081 发表于 2020-5-14 09:10
我刚刚试了,结果是空的:

那是因为我代码里面的冒号是中文的,你的字符串是英文的,而且我打成总分了{:10_245:}

zwhe 发表于 2020-5-30 10:48:15

{:7_129:}
页: [1]
查看完整版本: Python中如何截取字符?