51CTO博客开发
解析文件. Win32 用户: 创建一个用来解析 Windows .ini 文件的程序. POSIX 用户:创建一个解析 /etc/serves 文件的程序. 其它平台用户: 写一个解析特定结构的系统配置文件的程序.网上的例子多是解析 windows 的win.ini 的,这个相对简单些。这里是解析/etc/services的,由于某些列(各列可以看做配置项)可能为空,需要对怎么取出各列
文本: 每行在promotion后面包含一些数字,如果这些数字是相同的,则认为是相同的行,对于相同的行,只保留一行。思路: 根据字典和字符串切割。 建立一个空字典。 读入文本,并对每行切割前半部分,在读入文本的过程中循环在这个字典中查找,如果没找到,则写入该行到字典。否则,则表示该行已经被写入过字典了(
本系列博客(python 类) 的部分例子来自于 <<python 核心编程 第二版>>前面我们谈到 python 继承,是可以引用父类的__init__方法的 ,并在此基础上添加子类自己的特殊的属性的设定,形成子类自己的__init__ 构造函数。在这种方法中,必须显示的指出父类的名字。#coding:utf-8 class p(object):
这个系列的讲述,部分内容或者例子来自 <<python 核心编程 第二版>>python 的类有经典类和新式类之分,在多重继承的时候,继承到的方法的搜索的顺序根据类的类型不同也是不同的。先来讲经典类:经典类的特点就是不继承自任何类: #coding:utf-8 class p_1: def foo(sel
python 继承,子类可以覆盖父类的各种方法,包括__init__方法。如果要覆盖父类的__init__方法,且希望在覆盖的方法中引用父类的__init__方法,比如在父类的__init__方法的基础上增加一些属性的设置或者其他。则需要显示的引用父类的方法,否则,父类的方法不会被直接调用到的。比如:#coding:utf-8 # c继承了p,并实现了自己的__init__方法,也就是
本文的部分例子来自于 <<python核心编程 第二版>>子类如果不定义初始化__init__的话,那么自动继承父类的初始化方法。并且在创建子类的实例化对象的时候,父类的初始化将被自动调用。子类__init__ 可以调用父类的__init__ 方法实现部分初始化。 也可以不调用父类的__init__,完全自己实现__init__如果子类没有任何形式上实现自己的 _
类有数据属性和方法属性:属性就是 一个对象的数据成员或者函数成员。类的数据属性只有被类的实例引用后去更新或者被类定义的可以访问这个数据属性的方法去改变( 也要通过类的实例化)。也可以说,类的数据属性是跟类绑定的,类的数据属性是不受任何实例化的对象所影响的。有两种方法可以去访问类的属性,一种是dir(),一种是 class.__dict__属性dir() 可以看到对象的属性的名字列表。类的内置属性
python 类:分为新式类 和 旧式类 (也叫经典类):区别是:新式类至少继承自一个父类(至少继承自object类)经典类是没有指定父类的类是抽象的,是实例工厂。实例是类的实例(说的有点绕)。方法必须绑定到实例才能被调用。即使是在实例中直接调用了类方法,那也是通过实例去调用的。类的方法参数(这里说的是一般方法)是只需传递除了self以外的参数就行的。如同其他语言的this参数,不需要
proxy_redirect语法:proxy_redirect [ default|off|redirect replacement ] 默认值:proxy_redirect default 使用字段:http, server, location 如果需要修改从被代理服务器传来的应答头中的”Location”和”Refresh”字段,可以用这个指令设置。假设被代理服务
python 的字符串切片:可以正向切片,也可以反向切片,并且能够偶数切片,奇数切片( 同时都是支持正向反向的 )先说索引,python的字符串(数组也是这样),索引默认从0开始,如果是倒序切片,则最后一个字符串(数组的最后一个元素)的索引是 -1。当索引为负数的时候,计数从字符串的右边开始。切片的基本模式是:str[start:end:step]其中,任意一项都可以为空。索引的结束值
$10 $11 $12等都会被解析为 $1方法是 ${10} ${11} 用一对花括号把参数引起来
discover 权限,是对Job的URL对匿名用户的权限设定的。如果一个job对应的url ,给一个匿名用户,设定了discover权限的话,这个匿名用户将被强制重定向到登录页,登陆后,将看到这个Job 。这个权限是比read要低的。如果不设置这个,匿名用户访问一个job的url将会返回404。
lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr结果是以 打开的文件描述符数量:进程号 的格式排序的 。降序排序
这里和 获取链接略有不同,不是得到链接到url,而是获取每个链接的文字内容#!/opt/yrd_soft/bin/python import re import urllib2 import requests import lxml from bs4 import BeautifulSoup url =
通过BeautifulSoup库的get_text方法找到网页的正文:#!/usr/bin/env python #coding=utf-8 #HTML找出正文 import requests from bs4 import BeautifulSoup url='http://www.baidu.com' html=requests.get(
简介: 通过BeautifulSoup 的 find_all方法,找出所有a标签中的href属性中包含http的内容,这就是我们要找的网页的一级链接( 这里不做深度遍历链接) 并返回符合上述条件的a标签的href属性的内容,这就是我们要找的某个网页的所带有的一级链接#!/opt/yrd_soft/bin/python import&nb
#/usr//bin/env pytnon #coding:utf-8 import re ''' words = 'hello word a@r3143# #### ##$dfabpple# apple##%#$ 3423
需求: 统计一篇完全由英文构成的文章中的单词的个数分析:需要判断什么是单词,并统计判断为单词的元素的个数需要: Python 正则表达式 简单例子:import re pattern = re.compile(r'\w+') pattern.match('hello ,world') words = patte
备忘:vim(一定要是vim,不能是vi)打开文件,ctrl -v 选择列:再按shift + i ,光标会跳到选择的列的最上面一行的列首。进行编辑,比如按空格,进行格式调整,调整完毕,再按esc,就会对所有选择的列生效。要删除选择的列块,ctrl-v选择列块后,按d即可
某分区df观察空间剩余不多,删除一些无用的旧日志,但df观察仍然剩余 空间不够。但du观察文件占用的空间并不多。这是因为df会把被删除但并未被进程释放的旧文件统计在内。解决方法:lsof |grep deleted 看看被删除了的文件,还在被哪些进程打开。 重启这些进程即可。(确有必要,可以杀死进程,但如果有服务脚本,还是重启的好)
内存还有很多,使用了swap这时候,swap未必影响到性能:换句话说,现在swap里存储的还是不常使用的数据也就是swap正在发挥正常的作用)根据内存管理算法,当长时间没有访问内存page后,这个page就被换出了,不影响使用的。不过应该可以换个换页算法,尽量不让换出去。还有就是说明那个进程占用了大量的内存,而这些内存又长时间没有被使用,所以会被交换到swap分区也就是说,内存发生了换页,不常用的
top看到的内存有 res shr virt 几种这几种有不同的意义:res : 1. 进程当前正在使用的内存,包括比如malloc new等各种方法分配的堆内存,和程序方法调用的栈内存。但是不包括 swap out空间。2. 包括其他进程的共享空间 。3. 如果进程申请了10MB的内存,而实际只使用了1MB,那么res增长
实际工作中,恰好需要处理一个nginx日志,做个简单的分析:引子: 开发已经有日志分析平台和工具,但为了查一个问题,需要分析原始日志。要求: 原始日志的倒数第二个字段不为空且不为'-'的情况下,统计倒数第四个字段不为空且不为'-'的且不重复的个数。python脚本如下:#!/usr/bin/env 
有时候,我们需要备份某个目录,并排除该目录的一些子目录这就需要用到find的逻辑表达式-o -a 和find的动作-prunefind /opt/nginx/ -path /opt/nginx/logs/* -prune -o -print-o 是逻辑运算,shell中是短路操作,只要前面为真,后面就不会计
最简单的解决办法:随便在文档中搜索一个不存在的字符串,然后保存文档即可。或者其他方法:去掉文档高亮显示搜索字符串:命令行模式下 :nohlsearch去掉文档高亮显示搜索字符串:命令行模式下 :set nohls (其实同上,写法不同而已)
read()方法读入整个文件,把整个文件以字符串形式返回。readline() 方法每次只读一行,每运行一次只读一行。如果要读整个文件,需要结合循环判断文件结束。python判断文件末尾的标志是,读到空字符。比如:while str != '': readline()而readlines()每次读入整个文件,
if [ "$test"x = "test"x ]这里的关键有几点: 1 使用单个等号 ,两个等号都可以2 注意到等号两边各有一个空格:这是unix shell的要求 3 注意到"$test"x最后的x,这是特意安排的,因为当$test为空的时候,上面的表达式就变成了x = testx,显然是不相等的。而如果没有这个x,表达式就会报错:[: =: unary operator
这个问题,看着也很简单:比如:list_1 = [('a','b'),('c','d'),('e','f')] for i in list_1: print i 运行结果会返回: ('a',
因为需啊把redis的数据导出和数据库数据作对比,用管道符连接的方式导出数据:/opt/$company_name/redis-3.0.5/bin/redis-cli -h $IP -p $PORT -a $PASSWORD keys \* |xargs -n 1 /opt/company_name/redis-3.0.5/bin/redis-cli
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号