python 字符串排序方法

2016-3-18 杜世伟 Python

python 字符串排序方法

一般情况下,python中对一个字符串排序相当麻烦:
1)python中的字符串类型是不允许直接改变元素的。必须先把要排序的字符串放在容器里,如list。
2)python中的list容器的sort()函数没返回值。
所以在python中对字符串排序往往需要好几行代码。

以下是总结python实现的字符串排序的方法,方法实现都是基于字符串name='python'进行字符串排序,输出结果为:dhnopty
方法一:
name='python'
lname=list(name) #把字符串强制转换为list
lname.sort() #通过list sort方法进行排序
name="".join(lname)
print(name)
#dhnopty

阅读全文>>

标签: linux python

评论(0) 浏览(5906)

Tornado fatal error: Python.h: No such file or directory

2016-3-15 杜世伟 Tornado

今天手动编译tornado的时候出现以下错误:
#tornado-4.0.tar.gz
#tar xzvf tornado-4.0.tar.gz
#cd tornado-4.0
#python setup.py install
running install
running bdist_egg
running egg_info
writing requirements to tornado.egg-info/requires.txt
writing tornado.egg-info/PKG-INFO
writing top-level names to tornado.egg-info/top_level.txt
writing dependency_links to tornado.egg-info/dependency_links.txt
reading manifest file 'tornado.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'tornado.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
running build_ext
building 'tornado.speedups' extension
gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/usr/include/python2.7 -c tornado/speedups.c -o build/temp.linux-x86_64-2.7/tornado/speedups.o
tornado/speedups.c:2:20: fatal error: Python.h: No such file or directory
 #include <Python.h>
                    ^
compilation terminated.
command 'gcc' failed with exit status 1

阅读全文>>

标签: python tornado

评论(0) 浏览(16315)

Linux运维人员必会开源运维工具体系

2016-3-9 杜世伟 Linux

Linux运维人员必会开源运维工具体系

说明:不同的技术人员,在不同的阶段确定知识边界非常重要,否则,虽然是千里马,但是不知道终点在哪,最终累死也达不到目标。

新手必会用深黄色标记,老鸟必会深黄色+浅蓝色标记

==============================================

操作系统:Centos,Ubuntu,Redhat,suse,Freebsd

网站服务:nginx,apache,lighttpd,php,tomcat,resin
数据   库:MySQL,MariaDB,PostgreSQL

阅读全文>>

标签: linux rpm yum shell python go

评论(0) 浏览(7459)

python 文件操作方法

2016-3-1 杜世伟 Python

python 文件操作方法
 1 文件对象的方法 操作
 2 file.close() 关闭文件
 3 file.fileno() 返回文件的描述符(file descriptor ,FD, 整数值)
 4 file.flush() 刷新文件的内部缓冲区
 5 file.isatty() 判断 file 是否是一个类 tty 设备
 6 file.nexta() 返回文件的下一行(类似于 file.readline() ), 或在没有其它行时
 7 引发 StopIteration 异常
 8 file.read(size=-1) 从文件读取 size 个字节, 当未给定 size 或给定负值的时候, 读
 9 取剩余的所有字节, 然后作为字符串返回.如果打开模式无b,则read按字符读取,否则按字节读取
10 file.readline(size=-1) 从文件中读取并返回一行(包括行结束符), 或返回最大 size
11 file=open('test','ab')
12 file.write(bytes('hehe',encoding='utf-8')) 向文件写入字符串  (会覆盖原有数据,坑
13 file.close() 关闭文件
14 file.tell获取当前指针的位置
15 file.read()如果打开模式无b,则read按字符读取,否则按字节读取
16 file.fileno文件描述符
17 file.truncat 截断数据,清除文件指针之后的数据

阅读全文>>

标签: python open file

评论(0) 浏览(9984)

linux ansible 常用模块

2015-11-20 杜世伟 ansible

ansible 常用模块

一、ping模块

测试主机是否是通的,用法很简单,不涉及参数:

# ansible 192.168.8.12 -m ping
192.168.8.12 | success >> {
    "changed": false,
    "ping": "pong"
}
二、setup模块

setup模块,主要用于获取主机信息,在playbooks里经常会用到的一个参数gather_facts就与该模块相关。setup模块下经常使用的一个参数是filter参数,具体使用示例如下(由于输出结果较多,这里只列命令不写结果):

# ansible 192.168.8.12 -m setup -a 'filter=ansible_*_mb'   //查看主机内存信息
# ansible 192.168.8.12 -m setup -a 'filter=ansible_eth[0-2]'   //查看地接口为eth0-2的网卡信息
# ansible all -m setup --tree /tmp/facts   //将所有主机的信息输入到/tmp/facts目录下,每台主机的信息输入到主机名文件中(/etc/ansible/hosts里的主机名)

阅读全文>>

标签: linux shell python ansible

评论(0) 浏览(12968)

linux pip 安装使用详解

2015-11-2 杜世伟 Python

pip类似RedHat里面的yum,php中composer, 安装Python包非常方便。本节详细介绍pip的安装、以及使用方法。
1、pip下载安装
1.1 pip下载

# wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa333267fb1c922bb" --no-check-certificate

1.2 pip安装

# tar -xzvf pip-1.5.4.tar.gz
# cd pip-1.5.4
# python setup.py install

阅读全文>>

标签: linux install python pip

评论(0) 浏览(11690)

ansible 安装配置与使用

2015-10-20 杜世伟 ansible

ansible安装配置与简单使用
前言:

AnsibleWorks成立于2012年,由自动化工具Cobbler及Func的开发者Michael DeHaan创建。其Ansible平台是一个开源的配置及计算机管理平台。可实现多节点的软件部署,执行特定任务并进行配置管理。

Ansible 跟其他IT自动化技术的区别在于其关注点并非配置管理、应用部署或IT流程工作流,而是提供一个统一的界面来协调所有的IT自动化功能,因此 Ansible的系统更加易用,部署更快。受管理的节点无需安装额外的远程控制软件,由平台通过SSH(Secure SHell)对其进行管理,因此十分方便。其模块支持JSON等标准输出格式,可采用任何编程语言重写。

Ansible可以让用户避免编写脚本或代码来管理应用,同时还能搭建工作流实现IT任务的自动化执行。IT自动化可以降低技术门槛及对传统IT的依赖,从而加快项目的交付速度。

ansible有如下优点:       
1、轻量级,他不需要去客户端安装agent,更新时,只需要在操作机上进行一次更新即可        
2、批量任务执行可以写成脚本,而且不用分发到远程就可以执行        
3、使用python编写的,维护更简单        
4、支持sudo

阅读全文>>

标签: linux shell python ansible

评论(0) 浏览(12813)

python lambda 表达式

2015-9-9 杜世伟 Python

python lambda表达式

lambda表达式是一行函数。

lambda只是一个表达式,函数体比def简单很多。

lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。

lambda表达式是起到一个函数速写的作用。允许在代码内嵌入一个函数的定义。

它们在其他语言中也被称为匿名函数。如果你不想在程序中对一个函数使用两次,你也许会想用lambda表达式,它们和普通的函数完全一样。

阅读全文>>

标签: python lambda map list zip

评论(0) 浏览(13375)

Python 运算符"=="和"is"的差别分析

2015-9-6 杜世伟 Python

前言
在讲is和==这两种运算符区别之前,首先要知道Python中对象包含的三个基本要素,分别是:id(身份标识)、
python type()(数据类型)和value(值)。is和==都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同。下面来看看具体区别在哪。
Python中比较两个对象是否相等,一共有两种方法,简单来说,它们的区别如下:
is是比较两个引用是否指向了同一个对象(引用比较)。
==是比较两个对象是否相等。

阅读全文>>

标签: python is print

评论(0) 浏览(12620)

python 执行命令的3种方法

2015-8-24 杜世伟 Python

目前我使用到的python中执行cmd的方式有三种:
1. 使用os.system("cmd")
特点是执行的时候程序会打出cmd在linux上执行的信息。
import os
os.system("ls")  

2. 使用Popen模块产生新的process
现在大部分人都喜欢使用Popen。Popen方法不会打印出cmd在linux上执行的信息。的确,Popen非常强大,支持多种参数和模式。使用前需要from subprocess import Popen, PIPE。但是Popen函数有一个缺陷,就是它是一个阻塞的方法。如果运行cmd时产生的内容非常多,函数非常容易阻塞住。解决办法是不使用wait()方法,但是也不能获得执行的返回值了。
Popen原型是:

阅读全文>>

标签: linux python os subprocess commands

评论(0) 浏览(9852)

Powered by emlog 沪ICP备2023034538号-1