您的位置:首页 > 编程语言 > Python开发

python的基础模块(os,sys,time,shutil,differlib,socket)

2017-07-20 17:11 776 查看

##########os模块###########

• os.environ        对环境变量的操作

• os.getcwd()        获取当前的工作目录

• os.access(path,mode)    判断对一个文件或者目录是否具有指定的权限

            mode 参数的可选值: ROK, WOK, 和 X_OK

• os.stat()        相当于 Linux 下 stat 命令

• os.listdir()         列出给定目录的内容

• os.mkdir(path)     创建目录

• os.mkdirs(path)     创建目录树,相当于mkdir -p 操作

• 使用 Python 执行 Linux 命令

•os.system , 并没有返回值,是靠副作用产生输出的

•os.popen 返回一个文件对象

•os.popen2 返回两个文件对象,一个是 stdin, 一个是 stdout

•os.popen3 返回三个文件对象 :stdin,stdout,stderr

###os.path 模块

os.path 是os 的一个子模块 , 主要是对路径进行解析、创建、测试和其他的一些操作,封装了不同平台的路径操作。

• 路径解析:

    •path.split('/tmp/test/ab')

    • path.basename('/tmp/test/ab')

    • path.dirname('/tmp/test/ab')

    • path.join('a','b','c')

    • path.abspath('.')

    • path.splitext('aaa.tar.gz')

文件属性相关:

    • os.path.getatime ('filename')

    • os.path.getctime ('filename')

    • os.path.getmtime ('filename')

    • os.path.getsize('filename')

文件测试相关:

    • os.path.isabs

    • os.path.isdir

    • os.path.isfile

    • os.path.islink

##########sys模块#########

sys 模块,主要提供了系统相关的配置和操作,封装了探测、改变解释器runtime 以及资源的交互。

• sys.version 得到解释器的版本信息

• sys.platform 得到当前运行平台

•sys.argv 获取传递给脚本的参数,参数解析类似于 bash 的方式,第一个参数代表脚本本身;

    print sys.argv        #以列表方式返回传递给脚本的参数

• sys.stderr , sys.stdin , sys.stdout 这些都分别代表一个文件对象;

    print >> sys.stderr, 'I am error'

###找出用户给定目录下的所有以.log结尾的文件。

#!/usr/bin/env python

#coding:utf-8

_author_ = 'hxr'

import os

dir = raw_input("请输入目录名:")

filelist = os.listdir(dir)

for file in filelist:

  if file.endswith('.log'):

    with open('logfile','a+') as g:

        a=os.path.join(dir,file)

        g.write(a)

        g.write('\n')

#########time模块########

python中表示时间的三种方式:

1. 时间戳    time.time()

2. 格式化的时间字符串

3. 元组(共9个元素)    time.localtime()

time.mktime(t) 将元组格式时间转化为时间戳

time.localtime() 将时间戳转化为元组格式时间

time.sleep(secs)

time.ctime([secs]) 将时间戳转化为字符串格式显示

time.strftime(format[,t]) 将元组格式时间转化为字符串显示

time.strptime(string[,format]) 将字符串显示转化为元组格式时间

• time.strftime("%Y-%m-%d %X", time.localtime())

• time.strptime('2017-07-16 07:28:49','%Y-%m-%d %X')

##########shutil模块#####

shutil模块简单来说是用来复制、归档文件和目录

• shutil.copyfile(src,dst) 复制一个文件

• shutil.copymod(src,dst) 复制文件权限 , 将文件权限同步到其他文件

• shutil.copy(src,dst) 源必须是文件,但是 dst 可以是文件或者目录,与cp 类似

• shutil.copy2(src,dst) 与 copy 类似,但是源数据也会复制,类似cp -p 命令,将权限 , 时间戳等源数据也复制过去。

• shutil.copytree(src,dst) 以copy2 的方式递归复制一个目录:

• shutil.rmtree(path) 递归删除一个目录

• 打包压缩:

shutil.make_archive(base_name, format, root_dir=None,base_dir=None)

•basename: 打包后的文件名称,

•format: 以什么样的格式打包, rootdir 压缩的根目录。

•base_dir 开始压缩的目录。

•rootdir 和 basedir 默认都是当前目录

• 查看都支持哪些打包格式:

shutil.get_archive_formats()

##打包对应目录,并进行重命名

#!/usr/bin/env python

#coding:utf-8

_author_ = 'hxr'

import shutil

import time

s='homeback_%s_%s_%s.tar.gz'% (time.localtime()[0],time.localtime()[1],time.localtime()[2])

shutil.make_archive(s,'tar','/home')

#########differlib模块######

test1_line=test1.splitlines()

test2_line=test2.splitlines()

d=difflib.Differ()         ##比较不同并输出

a=d.compare(test1_line,test2_line)

a=list(a)

print '\n'.join(a)

d=difflib.HtmlDiff()          ##生成网页文件

htmldata=d.make_file(test1_line,test2_line)

with open('/home/kiosk/Desktop/data.html','a+') as f:

    f.write(htmldata)

########socket模块######

  ##服务端socket_server

#!/usr/bin/env python

#coding:utf-8

_author_ = 'hxr'

import socket

s=socket.socket()

s.bind(('127.0.0.1',8888))

s.listen(5)

print 'waiting for connection...'

sock,addr=s.accept()

print 'accept a connection'

sock.send('welcome hello client')

data=sock.recv(1024)

print data

s.close()

print 'connection close....'

  ##客户端socket_client

#!/usr/bin/env python

#coding:utf-8

_author_ = 'hxr'

import socket

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

s.connect(('127.0.0.1',8888))

print s.recv(1024)

s.send('hello,server')

s.close()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: