运维的我要学开发--Python(6)

本文均来自Python Cookbook,本博文励志将Cookbook中的string部位,文件,面向对象编程部分完成,本系列博文陆续还会介绍flask框架,每篇博文都以一个个小例子展示。

#-*- coding: utf-8 -*-
‘‘‘
        windows下修改文件属性
‘‘‘
import win32con,win32api,os
#创建一个文件,并展示如何操作它
thefile = ‘test‘
f = open(‘test‘,‘w‘)
f.close()
#设置成隐藏文件...
win32api.SetFileAttributes(thefile,win32con.FILE_ATTRIBUTE_HIDDEN)
#设置成只读文件
win32api.SetFileAttributes(thefile,win32con.FILE_ATTRIBUTE_READONLY)
#设置成普通文件
win32api.SetFileAttributes(thefile,win32con.FILE_ATTRIBUTE_NORMAL)
#最后删除掉该文件
os.remove(thefile)
‘‘‘
    对象的拷贝
    对象的引用(对一个对象的赋值,作为参数传递,
        作为结果返回,Python通常都是指向原
‘‘‘
#什么是对象引用
a = [1,2,3,4]
b = a #b引用了a
b.append(5)
print a,b
#结果:[1, 2, 3, 4, 5] [1, 2, 3, 4, 5]
import copy
listobject=[1,2,3,4]
#第一种对象拷贝方式(但是不适用于其属性或者内容中仍然是一个对象的情况
new_list =  copy.copy(listobject)
new_list.append(5)
print new_list,listobject
#必须使用deepcpoy的情况
listobject=[[1,2,3],[5,6,7]]
new_list =  copy.copy(listobject)
new_list[1].append(1000)
print new_list,listobject
#结果 [[1, 2, 3], [5, 6, 7, 1000]] [[1, 2, 3], [5, 6, 7, 1000]]
#第二种对象拷贝方式.递归拷贝对象
new_list =  copy.deepcopy(listobject)
‘‘‘
    判断一个列表中的某个元素是否存在,存在则返回
‘‘‘
#方案一
def list_get(L,i,v=None):
    if -len(L) <= i < len(L):return L[i]
    else:return v
#方案二
def list_get_egfp(L,i,v=None):
    try:return L[i]
    except IndexError:return v
#除非传入的索引值大多数是有效的,否则方案二要比方案一慢多了
‘‘‘
    多维列表的创建
‘‘‘
#得到1*5的列表
alist = [0]*5
#得到3*5的列表
multi = [[0]*5]*3
print multi
#结果[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
multi[0][0]=‘oops‘
print multi
#存在bug
#[[‘oops‘, 0, 0, 0, 0], [‘oops‘, 0, 0, 0, 0], [‘oops‘, 0, 0, 0, 0]]
#序列乘以数字得到的是包含多个引用原始内容的子项
#正确的多维序列的创建,使用列表推导没有任何隐式的引用
multi = [[0 for col in range(5)] for row in range(5)]
‘‘‘
    展开嵌套序列
‘‘‘
def list_or_tuple(x):
    return isinstance(x,(list,tuple))
def flatten(sequence,to_expand=list_or_tuple):
    for item in sequence:
        if to_expand(item):
            for subitem in flatten(item,to_expand):
                yield subitem
        else:
            yield item
‘‘‘
    二维阵列变换
‘‘‘
arr = [[1,2,3],[4,5,6],[7,8,9]]
#方法一
print [[r[col] for r in arr] for col in range(len(arr[0]))]
#方法二
print map(list,zip(*arr))
#结果[[1, 4, 7], [2, 5, 8], [3, 6, 9]]

运维的我要学开发--Python(6)

时间: 2024-11-12 05:48:09

运维的我要学开发--Python(6)的相关文章

运维的我要学开发--Python(3)

本文均来自Python Cookbook,本博文励志将Cookbook中的string部位,文件,面向对象编程部分完成,本系列博文陆续还会介绍flask框架,每篇博文都以一个个小例子展示. #-*- coding: utf-8 -*- ''' 检查一个文本是字符串还是二进制 思想:如果字符串中包含了空值或者其中含有超过30%的字符 的高位被置1或是奇怪的控制码,我们就人为这段数据是二进制数据 ''' from __future__ import division import string #所

运维的我要学开发--Python(4)

本文均来自Python Cookbook,本博文励志将Cookbook中的string部位,文件,面向对象编程部分完成,本系列博文陆续还会介绍flask框架,每篇博文都以一个个小例子展示. #-*- coding: utf-8 -*- ''' 文件相关的操作: read() open() 两个参数: 第一个:文件路径 第二个:打开文件的模式 常用的文件打开模式: r:文本模式读取 rb:二进制模式读取 w:创建文件并文本模式 wb:创建文件,二进制模式写 rU:通用换行符的文本模式读取文件(独立

运维的我要学开发--Flask(1)

Flask默认使用的是Jinja2的模板引擎,下面将会介绍下Flask提供给模板的一些方法. #-*- coding: utf-8 -*- #导入一些函数 from flask import Flask from flask import render_template,g #创建一个app app = Flask(__name__) #创建一个装饰器 @app.route("/") @app.route("/index") def index(): string=

Windows服务器Pyton辅助运维--03.安装Visual Studio 的 Python 开发插件 PTVS

PTVS (Python Tools for Visual Studio) http://pytools.codeplex.com/ 当前版本:2.1 RC PTVS (Python Tools for Visual Studio) 是一个开源项目,采用Apache 2.0许可发布.PTVS的主要特性包括:CPython.IronPython.Jython和PyPy:高级编辑功能如IntelliSense:多重构:内置REPL(read-eval-print loop)窗口:调试和分析功能,等等

运维工程师是要学python还是学go那?

在我们的认知中,运维工程师就是一个背锅侠,那么咱们怎么样来避免做背锅侠那? 可能有人会告诉你,你需要去懂一门开发语言,其实在现价段,掌握一门开发语言已经成为高级运维工程师的必备计能.不会开发,你就不能充分理解你们系统的业务流程,开发人员是很少关注性能的问题,他们只会把功能开发完成就可以了,那么性能问题就需要运维人员来做.一个业务上线了,导致CPU使用过高,内存占用过大,如果你不会开发,你可能只能查到进程级别,也就是哪个进程占用这么多,然后呢?然后就交给开发人员处理了,这样咋体现你的价值?如果是这

身为运维的你,怎么掌握python才不会失业

以前,我们都说Python是运维工程师的未来:现在,为什么大家都说不会Python的运维都将失业?运维必须懂开发,特别是python开发,已经形成大家的共识,不懂开发的运维,路会越走越窄. 而现在的情况是:有的运维人员连书都看不懂:有的书是可以看懂,别人写的简单代码也可以看懂,但自己不会写代码解决问题. 从不会写代码,到自己独立能写代码解决问题.这个问题很重要!盲目学习所谓的项目,最后还是不会自己写代码解决问题.首先解决了独立能写代码解决问题,再通过项目来加强训练. ? 其实,学习编程不止是学习

运维工程师该干什么学些什么?[致菜鸟]

很多刚学linux运维的朋友,总是搞不懂,运维工程师工作中干些啥?学的这些东西有什么用?今日我特来总结总结,希望能帮助即将跨入该行的人形成一个整体的思路.下面红色字体代表所要掌握的LInux免费开源工具. 运维工程师干些什么 总结两句话 1.  保障业务长期稳定运行(如网站服务器.游戏服务器等等). 2.  保障数据安全可靠(如用户名密码.游戏数据.博客文章.交易数据等等). 由这两句话推演运维工程师要学些什么 一.保障业务长期稳定运行 出一点点差错,用户就要投诉了. 1.业务跑在什么上面? 网

情人节了,可怜的IT运维男,没学过ITIL,还是没有女朋友……

2015年情人节来临,亲爱的IT男,别告诉我,你还没有女朋友,你为什么总在加班,没时间恋爱:为什么总在被业务部门抱怨,没心情恋爱:为什么工作总也做不顺,没信心恋爱!!!为什么这个可怜的人是你,原因很简单,你还没学ITIL吧. 你是一个企业的IT运维人员吗?你们的IT运维工作是否杂而无章,是否责任不明?你是否对复杂的运维流程和客户的无尽抱怨束手无策?你是否希望在领导面前提出有效的合理建议,以提升企业的IT服务管理水平?ITIL就是您的解决方案. 对于企业实施ITIL,可以有助于最终进行完善的服务管

运维堡垒机(跳板机)系统 python

相信各位对堡垒机(跳板机)不陌生,为了保证服务器安全,前面加个堡垒机,所有ssh连接都通过堡垒机来完成,堡垒机也需要有 身份认证,授权,访问控制,审计等功能,笔者用Python基本实现了上述功能. AD:2014WOT全球软件技术峰会北京站 课程视频发布 11月21日-22日 与WOT技术大会相约深圳 现在抢票 相信各位对堡垒机(跳板机)不陌生,为了保证服务器安全,前面加个堡垒机,所有ssh连接都通过堡垒机来完成,堡垒机也需要有 身份认证,授权,访问控制,审计等功能,笔者用Python基本实现了