#16 os&sys模块

前言

在编写Python程序的时候,可能需要和操作系统进行交互,比如获取某个目录下的内容、更改运行目录、更改环境变量等操作。在Python中有两个模块将这些问题完美解决,一起看看哇!

一、os模块

os模块提供一个和操作系统的接口,想要完全了解它,需要查看它的官方文档:https://docs.python.org/3.5/library/os.html

这里列出一些常用的方法:

In [3]: import os        # 导入os模块

In [4]: os.sep           # 该操作系统特定的路径分隔符
Out[4]: ‘/‘

In [5]: os.linesep       # 该操作系统的行分隔符
Out[5]: ‘\n‘

In [6]: os.pathsep       # 该操作系统用于分割文件的分隔符
Out[6]: ‘:‘

In [7]: os.name          # 返回当前系统所使用的平台(win返回nt,linux返回posix
Out[7]: ‘posix‘

In [8]: os.environ       # 输出系统环境变量
In [9]: import os

In [10]: os.getcwd()                          # 获取当前工作目录
Out[10]: ‘/Users/minutesheep‘

In [11]: os.pardir                            # 输出上级目录 ‘..‘
Out[11]: ‘..‘

In [12]: os.curdir                            # 输出当前目录 ‘.‘
Out[12]: ‘.‘

In [13]: os.mkdir(‘test‘)                     # 创建一个文件夹,只能创建一个

In [15]: os.makedirs(‘test1/test2/test3‘)     # 递归创建文件夹

In [16]: os.listdir()                         # 列出当前目录所有文件

In [17]: os.rmdir(‘test‘)                     # 删除一个空文件夹,只能删除一个

In [19]: os.removedirs(‘test1/test2/test3‘)   # 递归删除空文件夹,如果上级文件夹也为空,也删除

In [20]: os.chdir(‘..‘)                       # 改变工作目录

In [21]: os.getcwd()                          # 可以看到改变了
Out[21]: ‘/Users‘

In [24]: os.system(‘touch test.py‘)           # 执行系统命令,这里创建一个新的文件,成功则返回0
Out[24]: 0

In [26]: os.stat(‘test.py‘)                   # 查看文件状态
Out[26]: os.stat_result(st_mode=33188, st_ino=2252266, st_dev=16777223, st_nlink=1, st_uid=501, st_gid=20, st_size=0, st_atime=1549423963, st_mtime=1549423963, st_ctime=1549423963)

In [27]: os.rename(‘test.py‘,‘new.py‘)        # 对文件改名

In [28]: os.remove(‘new.py‘)                  # 删除一个文件
In [29]: import os

In [30]: os.system(‘touch test.py‘)              # 创建一个新文件用于操作
Out[30]: 0

In [31]: os.mkdir(‘test‘)                        # 创建一个文件夹用于操作

In [34]: abspath = os.path.abspath(‘test.py‘)    # 返回文件的绝对路径

In [35]: abspath
Out[35]: ‘/Users/minutesheep/test.py‘

In [37]: os.path.split(abspath)                  # 将一个文件的绝对路径分隔为元组形式,一个是目录,一个是文件名
Out[37]: (‘/Users/minutesheep‘, ‘test.py‘)

In [38]: os.path.dirname(abspath)                # 返回路径的上级目录
Out[38]: ‘/Users/minutesheep‘

In [39]: os.path.basename(abspath)               # 返回文件名,如果路径以/结尾,则返回空
Out[39]: ‘test.py‘

In [40]: os.path.exists(abspath)                 # 判断路径是否存在
Out[40]: True

In [41]: os.path.isabs(abspath)                  # 判断路径是否为绝对路径
Out[41]: True

In [42]: os.path.isfile(abspath)                 # 判断路径是否为文件
Out[42]: True

In [43]: os.path.isdir(‘test‘)                   # 判断路径是否为文件夹
Out[43]: True

二、sys模块

想要完全了解它,请查看其官方文档:< a href="https://docs.python.org/3.5/library/sys.html">https://docs.python.org/3.5/library/sys.html

这里只记录一些常用方法:

In [1]: import sys          # 导入sys模块

In [2]: sys.argv            # 输出命令行参数列表,第一个元素为当前程序本身
Out[2]: [‘/Users/minutesheep/.pyenv/versions/3.5.2/bin/ipython‘]

In [3]: sys.version         # 输出Python版本
Out[3]: ‘3.5.2 (default, Feb  3 2019, 22:37:21) \n[GCC 4.2.1 Compatible Apple LLVM 10.0.0 (clang-1000.10.44.4)]‘

In [4]: sys.path            # 输出模块的搜索路径,这个是最常用的!

In [5]: sys.platform        # 返回操作系统平台名称
Out[5]: ‘darwin‘

三、项目目录树架构

在写一个项目时,不可能只有一个程序文件,往往含有许多个不同的程序文件,这些程序文件不能都放在同一个文件夹,需要对这些文件进行归类整理。通常一个项目有可执行文件、测试文件、源代码文件、配置文件、日志文件、读我文件,这些文件应当有详细的分类,建议大家整理成如下目录树结构:

# 以SpeakLanguage项目为例:
SpeakLanguage                     # 项目名
├── README                        # 读我文件
├── bin                           # 执行目录
│   └── speak.py                  # 执行文件
├── conf                          # 配置文件目录
│   ├── conf1.cfg                 # 配置文件1
│   └── conf2.cfg                 # 配置文件2
├── log                           # 日志目录
│   └── log.log                   # 日志
├── requirements.txt              # 本项目需要的模块
└── speak_language                # 源代码目录,通常与项目名相同
    ├── chinese.py                # 源代码1
    ├── english.py                # 源代码2
    ├── main.py                   # 源代码入口
    └── test                      # 测试目录,里面含有测试文件
 1 # bin/speak.py
 2
 3 import os
 4 import sys
 5
 6 BASE_DIR = os.path.dirname(os.path.dirname(
 7     os.path.abspath(__file__)))  # 获取项目目录
 8
 9 sys.path.append(BASE_DIR)  # 将项目目录添加到模块的搜索列表里
10
11 if __name__ == ‘__main__‘:
12     from speak_language.main import run  # 从源代码入口程序main.py中导入run方法
13
14     run()  # 执行
1 # speak_language/chinese.py
2
3 def chinese():
4     print(‘我是小绵羊‘)
1 # speak_language/english.py
2
3 def english():
4     print(‘I am MinuteSheep‘)
# speak_language/main.py

from speak_language import chinese
from speak_language import english

def run():
    chinese.chinese()
    english.english()
1 # requirements.txt
2
3 将需要的安装的模块列在此文件中
# README

程序说明:
xxxxxxxxxxx
xxxxxxxxxxx
xxxxxxxxxxx
--------------------------
项目环境介绍:
xxxxxxxxxxx
xxxxxxxxxxx
xxxxxxxxxxx
--------------------------
需要的模块:
xxxxxxxxxxx
xxxxxxxxxxx
xxxxxxxxxxx
--------------------------
项目目录树:
xxxxxxxxxxx
xxxxxxxxxxx
xxxxxxxxxxx
--------------------------
作者:MinuteSheep
联系方式:xxxxxx
# 执行结果

我是小绵羊
I am MinuteSheep 

原文地址:https://www.cnblogs.com/minutesheep/p/10353635.html

时间: 2024-10-10 06:25:57

#16 os&sys模块的相关文章

python中re time os sys模块

re模块 正则表达式 这里写反斜杠也是转义的意思,python在re模块中使用都需要加反斜杠 \d 是匹配一个数字 \+ 大于等于1 \w 匹配数字字母下划线和中横杠 \* 匹配0个或多个 \t 指标符 . 除了回车意外的的所有 * 大于等于0 + 大于等于1 ? 0或1 {m},{m,n} 出现m次,出现m到n次,包括mn re匹字符串 re.match() re.match(pattern, string, flags)默认有3个参数,是最后一个我们不是很关注他,就默认.通过你前面写的pat

random与os,sys模块

random就是产生一个随机数模块各种操作举例# print(random.randint(1,35)) #随机产生一个[1,35]之间的数# print(random.random()) #随机生成一个0-1之间的小数## print(random.uniform(1,10)) #随机生成一个1-10之间的小数# print(random.randrange(1,35,3)) #随机生成[1,35)步长为三的整数## lst= ["张无忌","周芷若","

用os&amp;sys模块进行系统调用

系统调用sys模块 sys.argv 命令行参数List,第一元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version   获取python解释程序的版本信息 sys.path 返回模块的搜索路径,初始化时使用pythonpath环境变量的值 sys.platform 返回操作系统平台名称 sys.stdout.write('please') #标准输出,引出进度条的例子, 注:在py3上不行,可以用print代替 val = sys.stdin.r

python开发模块基础:os&amp;sys

一,os模块 os模块是与操作系统交互的一个接口 1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 4 ''' 5 os.walk() 显示目录下所有文件和子目录以元祖的形式返回,第一个是目录,第二个是文件夹,第三个是文件 6 open(r'tmp\inner\file',w) 创建文件 7 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 可以先记录当前文件目录 8 os.chdir("dirname") 改

python os,sys,logging模块的使用

os模块 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd os.curdir 返回当前目录: ('.') os.pardir 获取当前目录的父目录字符串名:('..') os.makedirs('dirname1/dirname2') 可生成多层递归目录 os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此

Python 的os模块与sys模块

python os模块的主要用法 python中的os模块可以用来编写于平台无关的一些文件系统操作. 主要的方法如下:一些标记属性os.linesep 文件中分割行的字符串os.sep文件路径名的分隔符os.curdir当前工作目录的字符串名称os.pardir父目录字符串名称常用方法os.remove()删除文件os.rename()重命名文件os.walk()生成目录树下的所有文件名os.chdir()改变目录os.mkdir/makedirs创建目录/多层目录os.rmdir/remove

8.模块介绍 time &amp;datetime模块 random os sys shutil json &amp; picle shelve xml处理 yaml处理 configparser hashlib subprocess logging模块 re正则表达式

本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configparser hashlib subprocess logging模块 re正则表达式 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才能完成(函数又可以在不同的.p

os和sys模块

sys模块 sys模块主要是用于提供对python解释器相关的操作 函数 sys.argv #命令行参数List,第一个元素是程序本身路径 sys.path #返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.modules.keys() #返回所有已经导入的模块列表 sys.modules #返回系统导入的模块字段,key是模块名,value是模块 sys.exc_info() #获取当前正在处理的异常类,exc_type.exc_value.exc_traceback

day6 模块time datetime random os sys json pikle

不写容易忘,感觉好多都陌生了,重新补回来 模块:用一坨代码实现了某个功能的代码集合 time & datetime模块 #_*_coding:utf-8_*_ import time import datetime   print(time.clock()) #返回处理器时间,3.3开始已废弃 print(time.process_time()) #返回处理器时间,3.3开始已废弃 print(time.time()) #返回当前系统时间戳 print(time.ctime()) #输出Tue