zoukankan      html  css  js  c++  java
  • 模块sys,os

    Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的Python库支持,以后的课程中会深入讲解常用到的各种库,现在,我们先来象征性的学2个简单的。

    在Python3中标准库放置在Python的安装路径的.lib下,第三方库安装在.libsite-packages

    标准库位置(本机安装的为Anaconda,在安装目录下的Lib目录中的...)

     下图的.Libsite-packages下面放置的都是第三方库(第三方库指的是需要安装才能导入的库)。我们自己可以开发自己的第三方库。

      一般情况下,自己开发的.py文件的放置到.Libsite-packages(python全局环境变量目录)中,即可随时调用,而不局限于当前路径下的导入。

    关于模块sys,os

    1.sys

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
     
    import sys
     
    print(sys.argv)
    ['C:\Users\zoe\PycharmProjects\S14\Day2', 'C:\Users\zoe\PycharmProjects\S14', 'C:\Users\zoe\Anaconda3\python36.zip', 'C:\Users\zoe\Anaconda3\DLLs', 'C:\Users\zoe\Anaconda3\lib', 'C:\Users\zoe\Anaconda3', 'C:\Users\zoe\Anaconda3\lib\site-packages', 'C:\Users\zoe\Anaconda3\lib\site-packages\Sphinx-1.5.1-py3.6.egg', 'C:\Users\zoe\Anaconda3\lib\site-packages\win32', 'C:\Users\zoe\Anaconda3\lib\site-packages\win32\lib', 'C:\Users\zoe\Anaconda3\lib\site-packages\Pythonwin', 'C:\Users\zoe\Anaconda3\lib\site-packages\setuptools-27.2.0-py3.6.egg']
     #返回的是

      下面是该段命令中的sys.path,sys.argv的命令的执行结果。

    import sys
    print(sys.path)
    '''注意,创建.py文件时一定不要用要使用的模块的名称。
    原因:import module时,Python会先从当前目录下搜索,
    如果当前目录下有一个sys.py的文件,在Python2中会报错,
    在Python3中,已经实现去全局环境中.Lib和.Libsite-packages查找相应的库,虽然不报错,也可正常进行,
    但是还是要注意不去给自己挖坑。
    '''
    print('---->',sys.argv)
    
    print(sys.argv[1:])
    
    print('''________sys_os__________
    this is the current content of the sys.argv:{ar} 
    ________sys_os__________'''.format(ar=sys.argv))
    

      

    print(sys.path)输出的是python的搜索模块的路径集,是一个list。

    可以在python 环境下使用sys.path.append(path)添加相关的路径,但在退出python环境后自己添加的路径就会自动消失!

    print(sys.argv)输出的当前运行环境下的命令行参数,如在上述的cmd截图中的python sys_os.py 1 2。sys_os.py的文件路径,1,2都是其中的命令行参数。

        .py文件中本身的参数并不属于返回的参数内容,如在sys_os.py中添加参数a=1,返回值中仍与上图一致。

        所以,sys.argv[]是用来获取命令行参数的,sys.argv[0]表示代码本身文件路径,其余参数从1开始。

    python print(sys.argv[1:]) 1 2    :目的是为了返回除了文件路径以外的命令行参数 1,2。

    2.os

    2.1 os.system()

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    # Author:Zoe
    import os
    os.system('dir') #os.system('dir')仅执行命令,不保存结果
    
    cmd_os=os.system('dir')   #os.system('dir')仅执行命令,不保存结果
    print('----',cmd_os) #故而,该命令返回的是0. 在shell中,0表示执行成功,1表是执行不成功。
    

      返回结果:

    由于windows系统中编码与Python中的编码不匹配所以可能会出现乱码;在下面用read()方法即可解决该问题。

    2.2 os.popen()

    另外接下来介绍os中的另一个命令,sys.popen()。

    os.system(command)

    os.popen(command[, mode[, bufsize]]) 

    os.popen()功能强于os.system().

    os.popen()方法用于从一个命令打开一个管道。在Unix,Windows中有效.

    返回一个文件描述符号为fd的打开的文件对象

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    import os, sys
    
    # 使用 mkdir 命令
    a = 'mkdir nwdir'
    
    b = os.popen(a,'r',1)
    
    print b
    

      执行命令print(os.popen('dir')):

    import os
    cmd_res=os.popen('dir')
    print(cmd_res)
    

      返回的是cmd_res该对象在内存中的存储的位置:

       执行命令:

    import os
    cmd_res=os.popen('dir')
    print(cmd_res)
    
    print(cmd_res.read())
    

      显示结果:

    2.3 os.mkdir()

    os.mkdir() 方法用于以数字权限模式创建目录。默认的模式为 0777 (八进制)。

    mkdir()方法语法格式如下:

    os.mkdir(path[, mode])

    参数

    • path -- 要创建的目录

    • mode -- 要为目录设置的权限数字模式

    
    
    本站仅用于个人学习的笔记和记录,有时候是阅读别人的文章的时候做着笔记整理,有些是在实际工作中遇到的问题以及解决小问题的记录。 当前仅用于作为一个萌新程序媛的查漏补缺地检索地。
  • 相关阅读:
    caffe: compile error: Could not open or find file your path~~/resized_data/0 and a total of 2 images .
    caffe: compile error : undefined reference to `cv::imread(cv::String const&, int)' et al.
    caffe: test code for Deep Learning approach
    C++ little errors , Big problem
    VGG_19 train_vali.prototxt file
    matlab 工具之各种降维方法工具包,下载及使用教程,有PCA, LDA, 等等。。。
    利用caffe生成 lmdb 格式的文件,并对网络进行FineTuning
    matlab 相关代码记录
    论文阅读之 Inferring Analogous Attributes CVPR 2014
    布局的几种方式(静态布局、自适应布局、流式布局、响应式布局、弹性布局)
  • 原文地址:https://www.cnblogs.com/zoe233/p/6991704.html
Copyright © 2011-2022 走看看