zoukankan      html  css  js  c++  java
  • Python—操作系统和多线程

    ####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'

  • 相关阅读:
    关于ios7的适配问题
    iOS安全攻防(十八):数据保护API
    【Objective-C】OC中KVO的基本概念和使用方法
    pytest运行方式
    unittest中使用ddt做数据驱动
    unittest使用HtmlTestRunner显示报告
    unittest中的断言内容
    unittest指定跳过某些方法
    unittest运行时指定运行顺序
    xpath使用属性元素定位,包含 and 、or、not
  • 原文地址:https://www.cnblogs.com/wf-aiyouwei/p/9683903.html
Copyright © 2011-2022 走看看