#!/usr/bin/python
# -*- coding: UTF-8 -*-
__author__ = 'Administrator'
import os
import sys
import shutil
import struct

#python通用模块使用例子

result=os.system("pwd");
print (type(result));
print("val="+str(result));

filename=__file__;
filename = filename.decode('gbk')
#test os模块
print(os.name)
cwd=os.getcwd()
#window path
cwd = cwd.decode('gbk')
print(cwd)
print(os.getenv("tmp"))

print(os.listdir(cwd))
print("sep="+os.sep+",linesep="+os.linesep);
print(os.path.split(cwd))
print(os.path.normpath(cwd));
print(os.path.splitext(filename))
print 'myname=',filename
print(os.path.basename(filename));
print(os.path.dirname(filename));

#test shutil
try:
    if not os.path.exists("d:/shutil"):
        os.makedirs("d:/shutil");
    #覆盖拷贝文件
    shutil.copyfile("finally.txt","d:/shutil/he.txt");
except IOError:
    print("copy error!")
else:
    print("copy finish!");
shutil.move("d:/shutil/he.txt","d:/shutil/hehe.txt");
#只复制其权限
shutil.copymode("hehe.txt", "d:/shutil/hehe.txt");
shutil.copy("finally.txt","d:/shutil/");
if os.path.exists("d:/shutil/haha"):
    #递归删除一个目录以及目录内的所有内容
    shutil.rmtree("d:/shutil/haha");
#目录拷贝
shutil.copytree("d:/test", "d:/shutil/haha");

#test os.path
#http://www.jb51.net/article/54911.htm
print(os.environ);
print (os.path.abspath("1.txt"))
print os.path.join(os.getcwd(), "1.txt")
print os.path.abspath("1.txt") == os.path.join(os.getcwd(), "1.txt")
print(os.path.split(os.getcwd()))#用于分开一个目录名称中的目录部分和文件名称部分。

print os.path.getctime("hehe.txt") #返回1.txt的ctime(创建时间)时间戳
print os.path.expanduser('~/dir') #把~扩展成用户根目录
print os.path.expandvars('$PATH') #扩展环境变量PATH
print os.path.isfile(os.getcwd()) #判断是否是文件名,1是0否

print os.path.isdir('c:\Python27\temp') #判断是否是目录,1是0否
print os.path.islink('/home/huaying/111.sql') #是否是符号连接 windows下不可用
#print os.path.ismout(os.getcwd()) #是否是文件系统安装点 windows下不可用
#print os.path.samefile(os.getcwd(), 'd:/test') #看看两个文件名是不是指的是同一个文件

#test 类型转换函数
help(chr) #在线帮助, obj可是任何类型
print callable(os.getcwd()) #查看一个obj是不是可以像函数一样调用
#eval("print 'test'");

print ord('A') #把一个字符或者unicode字符,变成ASCII数值
print (chr(65)) #把一个ASCII数值,变成字符
print ord('a')
print (chr(97))

print oct(1024) #转换为8进制
print hex(1024) #转换为16进制
print(max(12,3))
print(min(12,3))

#test struct unpack http://www.oschina.net/question/234345_40336

#pack - unpack
print '===== pack - unpack ====='
str = struct.pack("ii", 20, 400)
print 'str:', str
print 'len(str):', len(str) # len(str): 8

a1, a2 = struct.unpack("ii", str)
print "a1:", a1  # a1: 20
print "a2:", a2  # a2: 400
print 'struct.calcsize:', struct.calcsize("ii") # struct.calcsize: 8


#unpack string unpack为元组
print '===== unpack ====='
string = 'test astring'
format = '5s 4x 3s'
print struct.unpack(format, string) # ('test ', 'ing')

string = 'he is not very happy'
format = '2s 1x 2s 5x 4s 1x 5s'
print struct.unpack(format, string) # ('he', 'is', 'very', 'happy')

#pack
print '===== pack ====='
a = 20
b = 400
str = struct.pack("ii", a, b)
print 'length:', len(str) #length: 8
print str
print repr(str) # '/x14/x00/x00/x00/x90/x01/x00/x00'


#pack_into - unpack_from
print '===== pack_into - unpack_from ====='
from ctypes import create_string_buffer
buf = create_string_buffer(12)
print repr(buf.raw)

struct.pack_into("iii", buf, 0, 1, 2, -1)
print repr(buf.raw)
print struct.unpack_from("iii", buf, 0)

#test sys
print 'test sys:'
for i in sys.argv:
    print i
print(sys.path)
print(sys.modules)
print(sys.platform)
readline=sys.stdin.readline();
print(readline)

sys.exit(0)

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐