专栏首页python3Python的系统管理_06_pytho

Python的系统管理_06_pytho

import subprocess

res =subprocess.Popen(['uname','-sv'],stdout=subprocess.PIPE)

uname = res.stdout.read().strip()

find()和index()::

uname,index('Linux')

uname.find('Linux')

uname.index('asdfasdf')

uname.find('adfasdfasd')

#字符串切分

smp_index = uname.index ('SMP')

uname[smp_index:]

uname[:smp_index]

startswith()和endswith()

这两个方法可以帮助你判断字符串时是否以某一特定子串开始,或是以某一特定子串结束。

some_string = "RaymondLuxury-Yacht"

some_string.startswith("Raymond")

True

some_string.startswith("sdfasdf")

False

some_string.endswith("Luxury-Yacht")

True

some_string.endswith("Raymond")

False

lstrip(),rstrip(),strip()

分别用来删除前导空白,结尾空白,和前后空白的方法。

spacious_string= "\n\t SomeNon-Spacious Text \n \t \r"

spacious_string.lstrip()

spacious_string.rstrip()

spacious_string.strip()

另外可以输入参数删除任何内容。

xml_tag="<some_tag>"

xml_tag.lstrip("<")

xml_tag.lstrip(">")

xml_tag.rstrip("<")

xml_tag.rstrip(">")

嵌套使用,xml_tag.strip("<").strip(">")

xml_tag.strip("<>")

.strip 是删除<>的任意组好即><也将被删除

foo_str ="<foooooooooooo>blah<foo>"

foo_str.strip("<foo>")

upper()方法和lower()方法

对两个字符串进行比较,并且不考虑字符大写或是小写。

upper()将返回字符串的大写。

lower()将返回字符串的小写。

根据某个指定的分隔符对一个字符串进行提取,split()方法可以完成类任务。

comma_delim_string ="pos1,pos2,pos3"

pipe_delim_string ="pipepos1|pipepos2|pipepos3"

comma_delim_string.split(',')

pipe_delim_string.split('|')

split(',',1) 以','为分割,之分割第一个遇到的','

prosaic_string = "Isert your cleverlittle"

prosaic_string.split()#这个默认是用空格来分隔的。

prosaic_string.splitlines()#将会以行为分隔。

join()

some_list = ['one','two','three','four']

','.join(some_list)

','.join(str(i)for i in some_list)#解决输入为数字的错误,显示转换为字符。

replace()替换字符串。

replacable_string = "trancendtalhibernational nation"

replacable_string.replace("nation","natty")

import re#引入正则表达式的使用。

re_string = r"{{(.*?)}}"

some_string = "this is a string with`words` em `bbq`and {jjfa} "

for match inre.findall(re_string,some_string):

print"MATCH->" ,match

表达式转换为对象的编译:

import re

re_obj = re.compile(r"{{(.*?)}}")

some_string = "this is a string with`words` em `bbq`and {jjfa} "

for match in re_obj.findall(some_string):

print"MATCH->" ,match

这种方式速度会很快,

例:

采用timeit 可以测试出一段代码的运行时间。

1截取一段50万行的文本

tail -n 500000 Pa1.log >> 50Wlog.log

编写代码:re_loop_nocompile.py

在ipython下运行

import re_loop_nocompile

timeit -n 5 re_loop_nocompile.run_re()

显示最好的运行效率。1.42 最佳的。

使用linux的time工具对相同代码的测试结果:

测试命令为:

time python re_loop_nocompile.py

编译后的代码性能:

re_loop_compile.py

效率提升至543ms

所以应当在运行正则中使用编译的方式。

在运行正则表达式中r的作用如下例:

import re

raw_pattern = r'\b[a-z]+\b'

non_raw_pattern = '\b[a-z]+\b'

some_string = 'a few little words'

re.findall (raw_pattern , some_string)

re.findall (non_raw_pattern,some_string)

findall()使用:

import re

re_obj = re.compile(r'\bt.*?e\b')

re_obj.findall("time tame tune tinttire")

处理文件:

infile =open("50Wlog.log","r")

print infile.read()

"r"读模式,该值为默认值

"w"写模式

"a"附加模式

写入文件:

outputfile =open("foo_out.txt","w")

outputfile.write("This is \n Some \nRandom \n Output Text \n")

outputfile.close()

"try/finally"代码块

try:

f=open()

f.write()

finally:

f.close()

with 关键词:

from __future__ import with_statment

with open('writeable.txt','w')as f:

f.writer('thisa writeable file \n')

f

f.write("this won't work")

urllib模块,可以提供对网络中文件对象的访问。

import urllib

url_file = urllib.urlopen("http://192.168.112.96/index.html")

urllib_docs = url_file.read()

print urllib_docs

使用ElementTree开始解析XML文件,只须简单的加载和使用parse()对文件进行处理:

from xml.etree import ElementTree as ET

tcusers = ET.parse("Tomcat.xml")

tcusers

xml 以文件名标签开始,并以文件名标签截至。

这里将ElementTree as ET即为前面的对象。

first_user=tcusers.find('/user')

first_user

first_user.attrib

first_user.get('name')

first_user.get('roles')

first_user.get('foo')

first_user.tag

first_user.text

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python生成随机密码串

       今天修改服务器密码,想来想去不知道设置什么密码比较好,索性设置随机数吧。python当中的random模块可以生成随机数,主要用这个生成随机密码。

    py3study
  • python 字符串比较忽略大小写的方法

    py3study
  • 生成固定位数含大小写字母符号的密码

    >>> import string >>> dir(string) ['Formatter', 'Template', '_ChainMap', '_Templ...

    py3study
  • Apache Hive File

    其中TEXTFILE为默认格式,建表时不指定默认为这个格式,导入数据时会直接把数据文件拷贝到hdfs上不进行处理;

    DataScience
  • 如何选择腾讯云服务器配置

    云服务器的配置选择,和网站或应用的类型、访问量、数据量大小、程序质量等因素有关,建议和您的网站或应用的开发技术人员沟通,选择最适合您的配置。

    用户5908769
  • 如何选择腾讯云服务器配置?

    云服务器的配置选择,和网站或应用的类型、访问量、数据量大小、程序质量等因素有关,建议和您的网站或应用的开发技术人员沟通,选择最适合您的配置。

    用户6444356
  • 如何选择腾讯云服务器配置

    云服务器的配置选择,和网站或应用的类型、访问量、数据量大小、程序质量等因素有关,建议和您的网站或应用的开发技术人员沟通,选择最适合您的配置。

    用户5908769
  • nodejs错误:PayloadTooLargeError: request entity too large

    最近在使用Nodejs写POST接口的时候,涉及到客户端在请求体中上传base64编码图片的问题,例如我使用的POST请求,问题描述如下:

    ccf19881030
  • 一天一大 leet

    给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。

    前端小书童
  • 我对一道常考面试题的详细分析

    给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

    double

扫码关注云+社区

领取腾讯云代金券