####python的操作系统###
1.os模块
import os
#1.返回操作系统类型
# 值为posix,是linux操作系统
#值为nt,是windows系统
print os.name
#2.返回操作系统的详细
print os.uname()
#3.系统的环境变量
print os.environ
print os.environ.get(\'PATH\')
#4.判断是否是绝对路径(但是不会判断文件或者目录是否存在)
print os.path.isabs(\'/etc/passwd\')
print os.path.isabs(\'hello\')
#5.生成绝对路径
print os.path.abspath(\'hello.png\') #当前路径下的文件
print os.path.join(\'/home/kiosk\',\'hello.png\') #指定绝对路径
print os.path.join(os.path.abspath(\'.\'),\'hello.png\')
#6.获取目录名或者文件名
filename = \'/home/kiosk/Desktop/hello.png\'
print os.path.basename(filename)
print os.path.dirname(filename)
#7.创建目录/删除目录
os.mkdir(\'wf\')
os.makedirs(\'wf/westos\') #相当于 mkdir -p
os.rmdir(\'wf\')
#8.创建文件/删除文件
os.mknod(\'wf.txt\')
os.remove(\'wf.txt\')
#9.文件的重命名(如果重命名文件不存在,会报错)
os.rename(\'wf.txt\',\'westos.txt\')
#10.判断文件或者目录是否存在
print os.path.exists(\'img\')
print os.path.exists(\'data.txt\')
#11.分离后缀名和文件名
print os.path.splitext(\'hello.png\')
#12.将目录名和文件名分离
print os.path.split(\'/home/kiosk/Desktop/hello.png\')
2.练习
需求:
(1).在当前目录新建目录img,里面包含多个文件,文件名各不相同(X4G5.png)
(2).将当前img目录所有以.png结尾的后缀名改为.jpg
import random
import string
import os
# def create(dir):
# a = string.ascii_letters + string.digits
# b = random.choice(a)
# c = b + \'.png\'
# print os.makedirs(dir/c)
#
# create(\'wf\')
def gen_code(len=4):
#随机生成4位文件名
li = random.sample(string.ascii_letters + string.digits,len)
#将列表元素拼接成字符串
return \'\'.join(li)
def create_file():
#随机生成多个文件名
li = {gen_code() for i in range(100)}
os.mkdir(\'img\')
for i in li:
os.mknod(\'img/\'+i+\'.png\')
# create_file()
def modify_suffix(dirname,old_suffix,new_suffix):
"""
:param dirname: 所要操作的目录
:param old_suffix: 之前的文件后缀
:param new_suffix: 新的文件后缀
:return:
"""
#1.判断查找的目录是否存在,如果不存在,显示报错
if os.path.exists(dirname):
#2.找出所有以old_suffix(.png)结尾的文件
pngfiles = [i for i in os.listdir(dirname)
if i.endswith(old_suffix)]
#3.将文件名和后缀名分开,留下文件名
####python的多线程###
1.什么是单线程?
单线程是指:在程序执行时,所走的程序路径按照连续的顺序排下来,前面的必须处理好,后面的才会执行。
2.什么是多线程?
说起多线程,那么就不得不说什么是线程,而说起线程,就要说什么是进程。
进程(Process):
是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统机构的基础。进程可以简单的理解为:是一个可以独立运行的程序单位。它是线程的集合,进程就是由一个或多个线程构成的,每一个线程都是进程中的一条执行路径。每个应用程序都有一个自己的进程。
每个进程启动时都会最先产生一个线程,即主线程。然后主线程会创建其他子线程。
多线程:
就可以理解成进程中同时有多个执行的路径(线程)正在执行
两者的区别:
(1)线程必须在某个进程中执行
(2)多线程可以共享同个地址空间,打开的文件以及其它资源
(3)多线程共享物理内存,磁盘,打印机以及其他资源
3.建立多线程
将这些代码,分给了三个线程
"""
import threading
from time import ctime,sleep
def music(a):
for i in range(2):
print \'我在听%s。%s\'%(a,ctime())
sleep(1)
def movie(b):
for i in range(2):
print \'我在看%s。%s\'%(b,ctime())
sleep(5)
#创建threads列表
threads = []
t1 = threading.Thread(target=music,args=(\'李钟硕\',))
threads.append(t1)
t2 = threading.Thread(target=movie,args=(\'李钟硕的电影\',))
threads.append(t2)
for i in threads:
i.start()
print \'all over %s\'%ctime()
4.线程和函数的关系的建立
from threading import Thread
def foo(arg):
print arg
print \'before\'
#让线程和函数建立关系
t1 = Thread(target=foo,args=(1,))
t1.start()
print t1.getName()
t2 = Thread(target=foo,args=(2,))
t2.start()
print t2.getName()
print \'after\'