Python包的导入

本地导入文件使用import filename;

导入的是一个包,该包下面必须是有__init__.py文件才可以导入,否则报错,只有有了__init__.py文件,python解析器才会把这个目录当成是的包

import语法

import 包名

form  包名 import 模块名

improt 包名.模块名 as 函数名

例子:

#直接导入datetime模块

import datetime

print(datetime.datetime.now())

#仅导入datetime模块中的datetime方法

from datetime import datetime

print(datetime.now())

datetime使用

例子:

from datetime import datetime

now_time = datetime.now()

#使用strftime方法将time类型转换为str类型

a = now_time.strftime('%Y-%m-%d')

print(now_time)

print(a)

print(type(now_time))

输出:

2017-04-25 14:23:37.339000

2017-04-25

<type 'datetime.datetime'>

strftime函数常用参数

%Y 带世纪部分的十制年份

%m 十进制表示的月份

%d 十进制表示的每月的第几天

%H 24小时制的小时

%M 十时制表示的分钟数

%S 十进制的秒数

%c  标准时间,如:04/25/17 14:35:14

例子:

from datetime import datetime, timedelta

now_time = datetime.now()

a = now_time.strftime('%c')

print(now_time)

print(a)

#timedelta是计算日期差的,负数是前一天,正数是后一天

b1 = now_time + timedelta(days=-1)

b2 = now_time + timedelta(days=+1)

print(b1)

print(b2)

输出:

2017-11-09 23:43:30.690664

Thu Nov  9 23:43:30 2017

2017-11-08 23:43:30.690664

2017-11-10 23:43:30.690664

例子:

from datetime import datetime, timedelta

str1 = '2017-11-09 23:59:58'

#strptime函数可以将str类型的日期转换为datetime类型

time1 = datetime.strptime(str1, '%Y-%m-%d %H:%M:%S')

print(time1)

print(type(time1))

输出:

2017-11-09 23:59:58

<class 'datetime.datetime'>

例子:

from datetime import datetime, timedelta

str1 = '2017-11-09 23:59:58'

#将字符串类型的时间转换为datetime类型

time1 = datetime.strptime(str1, '%Y-%m-%d %H:%M:%S')

print(time1)

print(type(time1))

#将datetime类型的日期转换为字符串

time1_str = datetime.strftime(time1, '%Y-%m-%d %H:%M:%S')

print(type(time1_str))

print(time1_str)

输出:

2017-11-09 23:59:58

<class 'datetime.datetime'>

<class 'str'>

2017-11-09 23:59:58

例子:

from datetime import datetime, timedelta

import time

#使用time方法获取当前时间戳

time1 = time.time()

print(time1)

#使用fromtimestamp方法将时间戳转换为日期

time1_str = datetime.fromtimestamp(time1)

print(time1_str)

print(type(time1_str))

输出:

1510242773.3468468

2017-11-09 23:52:53.346847

<class 'datetime.datetime'>




OS模块

例子:

import os

#查看当前操作系统类型,windows为nt,linux为posix

print(os.name)


例子:

import os

#调用系统命令ipconfig

os.system(‘ipconfig’)

#使用popen方法方法查看执行后的返回结果,返回类型为file,需要使用read读取file类型的数据

content=os.popen('ipconfig').read()

print(content)


例子

import os

#获得目录的当前系统程序工作路劲

print(os.getcwd())

#切换到目标目录

os.chdir(r'd:\123\456')

#列出当前目录的文件

print(os.listdir(os.getcwd()))

#列出C:\Python27目录下的文件

print(os.listdir('C:\Python27'))

#在当前目录下创建abc目录

os.mkdir('abc')

#删除当前目录下的1.txt文件,如果文件不存在会报错

os.remove('1.txt')

#打印操作系统的分隔符,linux系统的分隔符\n,windows系统的分隔符\r\n,mac系统的分隔符\r

print(os.linesep)

#拼接当前路径及后面文件,但是不创建文件

print(os.path.join(os.getcwd(), 'abc.txt'))

#判断路径是否为链接

print(os.path.islink(os.getcwd()))

path1 = os.path.join(os.getcwd(), 'abc.txt')

#将路径与文件名分开,类型为元组

print(os.path.split(path1))

#将盘符与后面内容分开

Print(os.path.splitdrive(path1))

#将后缀名与前面内容分开

Print(os.path.splitext(path1))

#当前目录下存在aaa目录,不创建,当前不存在aaa目录,创建aaa目录

if not os.path.exists(r'E:\123\aaa'):

    os.mkdir(r'E:\123\aaa')

#获得E:\123\456.py文件的目录

print(os.path.dirname(r'E:\123\456.py'))




commands模块

Python中的commands模块专门用于调用Linux shell命令,并返回状态和结果

例子:

import commands

ls1 = 'ls /home/admin'

#getoutput执行shell命令返回str结果

a = commands.getoutput(ls1)

print(type(a))

print(a)

输出:

输出同shell下ls /home/admin命令,返回类型为str


例子:

import commands

ls1 = 'ls /home/admin'

#getstatusoutput方法返回元祖类型

c = commands.getstatusoutput(ls1)

print(type(c))

#将元祖中的两个值分别赋给status, output。shell成功,status返回0,不成功返回1。output类型为str

status, output = commands.getstatusoutput(ls1)

print(status)

print(output)

print(type(output))



sys模块

获取程序参数

例子:

#获取程序参数

import sys

print('argv[0] = {0}  argv [1] = {1}'.format(sys.argv[0], sys.argv[1]))

输出:

第一个参数为本省参数,第二个阐述为执行时输入的参数


标准输入、标准输出和错误输出

sys.stdin、sys.stdout和sys.stderr

例子:

#标准输入

import sys

print "Please enter your name: "

name = sys.stdin.readline()

print name


例子:

#标准输出

import sys

sys.stdout.write("123456\n")

sys.stdout.flush()

#标准输入

import sys

print sys.stdin.readlines()


例子:

#标准输出

import sys

import time

for i in range(5):

    print i

    #刷新缓存后直接输出,不会等到循环结束后输出,对实时输出有要求时可使用

    sys.stdout.flush()

    time.sleep(1)


捕获结束时退出是否正常

def exitfunc():

    print 'hello world'

sys.exitfunc = exitfunc

print "aaaaaaaa"

# 退出自动调用exitfunc()后,程序退出

sys.exit(1)

#程序退出,不会执行

print 'bbbbbb'