如何用Python来进行查询和替换一个文本字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用Python来进行查询和替换一个文本字符串相关的知识,希望对你有一定的参考价值。

1、说明
可以使用find或者index来查询字符串,可以使用replace函数来替换字符串。
2、示例
1)查询
>>> \'abcdefg\'.find(\'cde\')
结果为2
\'abcdefg\'.find(\'acde\')
结果为-1
\'abcdefg\'.index(\'cde\')
结果为2
2)替换
\'abcdefg\'.replace(\'abc\',\'cde\')
结果为\'cdedefg\'
3、函数说明
1)find(...)
S.find(sub[, start[, end]]) -> int
返回S中找到substring sub的最低索引,使得sub包含在S [start:end]中。 可选的 参数start和end解释为切片表示法。
失败时返回-1。
2)index(...)
S.index(sub[, start[, end]]) -> int
与find函数类似,但是当未找到子字符串时引发ValueError。
3)replace(...)
S.replace(old, new[, count]) -> str
返回S的所有出现的子串的副本旧换新。 如果可选参数计数为给定,只有第一个计数出现被替换。
参考技术A 1、说明
可以使用find或者index来查询字符串,可以使用replace函数来替换字符串。
2、示例
1)查询
>>> 'abcdefg'.find('cde')
结果为2
'abcdefg'.find('acde')
结果为-1
'abcdefg'.index('cde')
结果为2
2)替换
'abcdefg'.replace('abc','cde')
结果为'cdedefg'
3、函数说明
1)find(...)
S.find(sub[, start[, end]]) -> int
返回S中找到substring sub的最低索引,使得sub包含在S [start:end]中。 可选的 参数start和end解释为切片表示法。
失败时返回-1。
2)index(...)
S.index(sub[, start[, end]]) -> int
与find函数类似,但是当未找到子字符串时引发ValueError。
3)replace(...)
S.replace(old, new[, count]) -> str
返回S的所有出现的子串的副本旧换新。 如果可选参数计数为给定,只有第一个计数出现被替换。
参考技术B find()方法可以在一个较长的字符串中查找子串,返回子串坐在位置的最左端索引
replace()方法返回某字符串的所有匹配项均被替换之后得到的字符串
可能这里问的是正则表达式的东西!!!
可以使用sub()方法来进行查询和替换,sub方法的格式为:sub(replacement, string[, count=0])
replacement是被替换成的文本
string是需要被替换的文本
count是一个可选参数,指最大被替换的数量
例子:
import re
p = re.compile(‘(blue|white|red)’)
print(p.sub(‘colour’,'blue socks and red shoes’))
print(p.sub(‘colour’,'blue socks and red shoes’, count=1))
输出:
colour socks and colour shoes
colour socks and red shoes
subn()方法执行的效果跟sub()一样,不过它会返回一个二维数组,包括替换后的新的字符串和总共替换的数量
例如:
import re
p = re.compile(‘(blue|white|red)’)
print(p.subn(‘colour’,'blue socks and red shoes’))
print(p.subn(‘colour’,'blue socks and red shoes’, count=1))
输出
(‘colour socks and colour shoes’, 2)
(‘colour socks and red shoes’, 1)本回答被提问者采纳

python基础面试题整理---从零开始 每天十题(04)

一、Q:如何用Python来进行查询和替换一个文本字符串?

  A:可以使用sub()方法来进行查询和替换,sub方法的格式为:sub(replacement, string[, count=0])

    replacement是被替换成的文本

    string是需要被替换的文本

    count是一个可选参数,指最大被替换的数量,示例:  

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import re

p = re.compile((blue|white|red))
print(p.sub(colour, blue socks and red shoes))
print(p.sub(colour, blue socks and red shoes, count=1))

二、Q:有没有一个工具可以帮助查找python的bug和进行静态的代码分析?

  A:PyChecker是一个python代码的静态分析工具,它可以帮助查找python代码的bug, 会对代码的复杂度和格式提出警告
     Pylint是另外一个工具可以进行coding standard检查。

三、Q:如何用Python删除一个文件?

  A:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os

my_file = D:/text.txt  # 文件路径
if os.path.exists(my_file):  # 如果文件存在
    # 删除文件,可使用以下两种方法。
    os.remove(my_file)  # 则删除
    # os.unlink(my_file)
else:
    print(no such file:%s % my_file)

四、Q:Python如何copy一个文件?

  A:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from shutil import copyfile

src = 源文件
dst = 目标文件
copyfile(src, dst)  # src:源文件 dst:目标文件

五、Q:python代码得到列表list的交集与差集

  A:交集

a = [2, 3, 4, 5]
b = [2, 5, 8]
print(list(set(a).intersection(set(b))))

     差集

#!/usr/bin/env python
# -*- coding: utf-8 -*-

a = [2, 3, 4, 5]
b = [2, 5, 8]
print(list(set(a).difference(set(b))))  # a包含,b却不包含的

六、Q:python如何捕获异常

  A:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

def main():
    try:
        a = 1
    except:
        print(error)
    finally:
        return None

当我们进行try嵌套时,如果try嵌套,那么如果里面的try没有捕获到这个异常,那么外面的try会接收到这个异常,然后进行处理,如果外边的try依然没有捕获到,那么再进行传递。。。如果一个异常是在一个函数中产生的,例如函数A---->函数B---->函数C,而异常是在函数C中产生的,那么如果函数C中没有对这个异常进行处理,那么这个异常会传递到函数B中,如果函数B有异常处理那么就会按照函数B的处理方式进行执行;如果函数B也没有异常处理,那么这个异常会继续传递,以此类推。。。如果所有的函数都没有处理,那么此时就会进行异常的默认处理,即通常见到的那样

七、Q:假设有如下两个 list:a = [‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘],b = [1, 2, 3, 4, 5],将 a 中的元素作为 key,b 中元素作为 value,将 a,b 合并为字典。

  A:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

def main():
    a = [a, b, c, d, e]
    b = [1, 2, 3, 4, 5]
    dic = dict(map(lambda x, y: [x, y], a, b))
    print(dic)
    for k, v in dic.items():
        print(k)
        print(v)


main()

八、Q:[1,2,3]+[4,5,6]的结果是多少?

  A:[1,2,3,4,5,6],和extend结果一样,extend不会建立新的对象,也就不会占用新的内存,而选择+来拼接会产品新的内存空间。

九、Q:编写一个代码,用于计算文件中的所有大写字母。

  A:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import re


def main(str):
    len_capital = len(re.compile(r[A-Z]).findall(str))
    print(大写字母有%s个 % len_capital)


str = "ABCaaaaABaCaaaABC"
main(str)

十、Q:如果li是[4,6,8,1,0,3],li[-1]会是什么?

  A:会返回3,也就是返回从后往前数,第一位,同理li[-2]会返回0

以上是关于如何用Python来进行查询和替换一个文本字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何用BAT替换文本的字符串?

请教各位大神,如何用python提取出两幅图像中不同的部分

如何用 Greasemonkey 的用户脚本替换 JSON 字符串中的文本

如何用python查找和替换json文件中的特定字符串

如何用空白替换文本中提取的 HTML 标签?

XSLT 2.0 - 如何用字符串替换'('和')'来清空?