Press "Enter" to skip to content

Tag: python

python中文件的复制

文件的复制
file类中没有提供专门的文件复制函数,因此只能通过使用文件的读写函数来实现文件的复制。这里仅仅给出范例:

src = file("myfile.txt", "w+")
temp = ["hello world! \n"]
src.writelines(temp)
src.close()

src = file("myfile.txt", "r+")
des = file("myfile2.txt", "w+")
des.writelines(src.read())
src.close()
des.close()
Leave a Comment

python备份远程FTP脚本

自己写的一个Linux上使用python备份远程FTP脚本,编写此脚本的初衷是为了方便一些使用虚拟主机的朋友,因为许多虚拟主机商不提供备份服务,导致文件丢失的情况时有发生,因此就有了这个脚本。

系统需要安装fuse-curlftpfs、zlib、zlib-devel三个软件包,其中fuse-curlftpfs包不好安装,得先安装个第三方的yum源,才可以通过yum的方式安装之。

原理比较简单,即是python调用shell命令把远程FTP服务器挂载至本地,再打包压缩实现备份,最后解除挂载。备份以后的文件名会包含了备份的日期,同时会删除5天前备份的文件,配合crontab使用,可以实现定期备份FTP服务器上的文件。

如果是在VPS上使用,请确保VPS是不是基于Openvz虚拟化技术的,因为Openvz会限制对fuse的使用,无法实现远程挂载。Xen,KVM可以正常使用。

编写脚本期间还得到了zhiwei同学的帮助,在此提出感谢。脚本具备扩展性,可以备份多个FTP服务器上的目录。如果需要备份多个FTP,把脚本最后4行复制一遍即可。

使用方法:

Leave a Comment

python读取系统信息

python读取系统信息的一些方法

最主要是的platform模块:

>>> import platform
>>> platform.version()
'#1 SMP Fri Feb 22 00:31:26 UTC 2013'
>>> platform.platform()
'Linux-2.6.32-358.el6.x86_64-x86_64-with-centos-6.4-Final'
>>> platform.system()
'Linux'
>>> platform.machine()
'x86_64'
>>> platform.python_build()
('r266:84292', 'Feb 22 2013 00:00:18')
>>> platform.python_version()
'2.6.6'
>>> platform.release()
'2.6.32-358.el6.x86_64'
>>> platform.uname()
('Linux', 'localhost.localdomain', '2.6.32-358.el6.x86_64', '#1 SMP Fri Feb 22 00:31:26 UTC 2013', 'x86_64', 'x86_64')
>>> platform.architecture()
('64bit', 'ELF')
在windows上,专门还有个platform.win32_ver() 可用
Leave a Comment

python基础知识3:字典

字典使用大括号{ }来表示
字典中的“键”和“值”存在对应的映射关系,“键” 是唯一的,“值”并不唯一

1,字典的创建

>>> c={ }  #第1种创建方法
>>> c['name']='zhang3'
>>> c['age']=25

>>> items=[('name','zhang3'),('age',25)]  #第2种创建方法(使用列表/元组创建)
>>> d=dict(items)    #使用dict()函数创建元组

>>> e=dict(name='zhang3',age=25)  #第3种方法,通过参数创建
>>> e
{'age': 25, 'name': 'li4'}

>>> e={}.fromkeys(['name','age'],'unknown') #第4种方法,通过fromkeys()方法创建
>>> e
{'age': 'unknown', 'name': 'unknown'}  #所有“键”的值均为unknown
Leave a Comment

python基础知识2:列表与元组

列表用大括号[]表示,元组用圆括号()表示
列表可以修改,字符串与元组不可修改
元组的分片还是元组,列表的分片还是列表

列表方法:

name=["zhang3","li4","wang5"]
name.append("gou6")  #添加项
name.remove("gou6")  #移除第一个匹配项,也可用del name[3]来移除
name.insert(3,"gou6") #插入项
name.index("gou6")  #找出第一个匹配项的位置
name.extend(["gou6","xuan7"])  #扩展
name.pop(0)  #返回列表的第一项值并从列表中删除之
Leave a Comment

python基础知识1:字符串与分片

常见的算术运算:

幂运算(x的y次幂)  pow(x,y)
取绝对值    abs(number)
平方根      math.sqrt(number)
浮点数取整  math.floor(32.9)    结果为32.0

获取输入值:

获取数字    x=input("input x:")
获取字符串  name=raw_input("what's your name?")
           print "Hello," + name + ".welcome to us"
注意:Pyhton3.x版本取消了raw_input,统一使用input

输出值:

print name + repr(x)
#str用于把值转换为合理的字符串,repr创建一个字符串,返回值的字符串形式
#str是一种类型(和int一样),repr是函数
Leave a Comment

使用python备份VPS上的网站文件及数据库 1.0

学python有一段时间了,花了两天时间写了个备份的脚本。可以将Linux vps上的网站目录及数据库全部导出一份到远程FTP服务器上,再配置crontab实现每天的自动备份。功能上跟imcat的这个备份脚本是一样的,但程序比imcat的健壮多了,加入了N多自动判断,不会导致程序轻易出错。

代码仅适于python2,不适用于python3。因为调用了压缩模块,还需要yum install zlib zlib-devel

最后,需要强调的,此段代码是个python菜鸟写出来的,还望路过的大侠指点一二,切莫贱笑!

Leave a Comment