os 订阅
操作系统(Operating System,简称OS)是管理计算机硬件与软件资源的计算机程序。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。 展开全文
操作系统(Operating System,简称OS)是管理计算机硬件与软件资源的计算机程序。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。
信息
英文简称
OS
常见系统
Windows,macOS,Linux,iOS,Android
外文名
operating system
体系结构
模块组合结构、层次结构、微内核结构
组成部分
内核、驱动程序、接口库、外围
中文名
操作系统
功    能
处理器管理、存储器管理、设备管理、文件管理
基本类型
批处理系统、分时操作系统、实时操作系统
特    征
并发、共享、虚拟、异步
操作系统简介
在计算机中,操作系统是其最基本也是最为重要的基础性系统软件。从计算机用户的角度来说,计算机操作系统体现为其提供的各项服务;从程序员的角度来说,其主要是指用户登录的界面或者接口;如果从设计人员的角度来说,就是指各式各样模块和单元之间的联系。事实上,全新操作系统的设计和改良的关键工作就是对体系结构的设计,经过几十年以来的发展,计算机操作系统已经由一开始的简单控制循环体发展成为较为复杂的分布式操作系统,再加上计算机用户需求的愈发多样化,计算机操作系统已经成为既复杂而又庞大的计算机软件系统之一。 [1] 
收起全文
精华内容
参与话题
问答
  • python中os模块用法

    万次阅读 多人点赞 2018-04-17 11:10:17
    一、os模块概述Python os模块包含普遍的操作系统功能。如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的。(一语中的)二、常用方法1、os.name输出字符串指示正在使用的平台。如果是window 则用'nt'表示,...

    一、os模块概述

    Python os模块包含普遍的操作系统功能。如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的。(一语中的)

    二、常用方法

    1、os.name

    输出字符串指示正在使用的平台。如果是window 则用'nt'表示,对于Linux/Unix用户,它是'posix'。

    2、os.getcwd()

    函数得到当前工作目录,即当前Python脚本工作的目录路径。

    3、os.listdir()

    返回指定目录下的所有文件和目录名。

    >>> os.listdir(os.getcwd())
    ['Django', 'DLLs', 'Doc', 'include', 'Lib', 'libs', 'LICENSE.txt', 'MySQL-python-wininst.log', 'NEWS.txt', 'PIL-wininst.log', 'python.exe', 'pythonw.exe', 'README.txt', 'RemoveMySQL-python.exe', 'RemovePIL.exe', 'Removesetuptools.exe', 'Scripts', 'setuptools-wininst.log', 'tcl', 'Tools', 'w9xpopen.exe']
    >>> 

    4、os.remove()

    删除一个文件。

    5、os.system()

    运行shell命令。

    >>> os.system('dir')
    0
    >>> os.system('cmd') #启动dos

    6、os.sep 可以取代操作系统特定的路径分割符。

    7、os.linesep字符串给出当前平台使用的行终止符

    >>> os.linesep
    '\r\n'            #Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'。
    >>> os.sep
    '\\'              #Windows
    >>> 

    8、os.path.split()

    函数返回一个路径的目录名和文件名

    >>> os.path.split('C:\\Python25\\abc.txt')
    ('C:\\Python25', 'abc.txt')

    9、os.path.isfile()和os.path.isdir()函数分别检验给出的路径是一个文件还是目录。

    >>> os.path.isdir(os.getcwd())
    True
    >>> os.path.isfile('a.txt')
    False

    10、os.path.exists()函数用来检验给出的路径是否真的存在

    >>> os.path.exists('C:\\Python25\\abc.txt')
    False
    >>> os.path.exists('C:\\Python25')
    True
    >>> 

    11、os.path.abspath(name):获得绝对路径

    12、os.path.normpath(path):规范path字符串形式

    13、os.path.getsize(name):获得文件大小,如果name是目录返回0L,如果那么为文件,则返回文件的字节数

    14、os.path.splitext():分离文件名与扩展名

    >>> os.path.splitext('a.txt')
    ('a', '.txt')

    15、os.path.join(path,name):连接目录与文件名或目录

    >>> os.path.join('c:\\Python','a.txt')
    'c:\\Python\\a.txt'
    >>> os.path.join('c:\\Python','f1')
    'c:\\Python\\f1'
    >>> 

    16、os.path.basename(path):返回文件名

    >>> os.path.basename('a.txt')
    'a.txt'
    >>> os.path.basename('c:\\Python\\a.txt')
    'a.txt'
    >>> 

    17、os.path.dirname(path):返回文件路径

    >>> os.path.dirname('c:\\Python\\a.txt')
    'c:\\Python'

     

    II

    os.error 
    内建OSError exception的别名。 


    os.name 
    导入依赖操作系统模块的名字。下面是目前被注册的名字:'posix', 'nt', 'mac', 'os2', 'ce', 'java', 'riscos'. 


    下面的function和data项是和当前的进程和用户有关 

    >>> os.path.dirname('c:\\Python\\a.txt')
    'c:\\Python'

     


    os.environ   
    一个mapping对象表示环境。例如,environ['HOME'] ,表示的你自己home文件夹的路径(某些平台支持,windows不支持) 
    ,它与C中的getenv("HOME")一致。 


    这个mapping对象在os模块第一次导入时被创建,一般在python启动时,作为site.py处理过程的一部分。在这一次之后改变environment不 
    影响os.environ,除非直接修改os.environ. 


    注:putenv()不会直接改变os.environ,所以最好是修改os.environ 


    注:在一些平台上,包括FreeBSD和Mac OS X,修改environ会导致内存泄露。参考 putenv()的系统文档。 


    如果没有提供putenv(),mapping的修改版本传递给合适的创建过程函数,将导致子过程使用一个修改的environment。 


    如果这个平台支持unsetenv()函数,你可以删除mapping中的项目。当从os.environ使用pop()或clear()删除一个项目时,unsetenv()会自动被调用(版本2.6)。 


    os.chdir(path) 
    os.fchdir(fd) 
    os.getcwd() 
    这些函数在 Files和 Directories中。 


    os.ctermid() 
    返回进程控制终端的文件名。在unix中有效,请查看相关文档.。 
    os.getegid() 
    返回当前进程有效的group的id。对应于当前进程的可执行文件的"set id "的bit位。在unix中有效,请查看相关文档.。 
    os.geteuid() 
    返回当前进程有效的user的id。在unix中有效,请查看相关文档.。 
    os.getgid() 
    返回当前进程当前group的id。在unix中有效,请查看相关文档.。 
    os.getgroups() 
    返回当前进程支持的groups的id列表。在unix中有效,请查看相关文档.。 
    os.getlogin() 
    返回进程控制终端登陆用户的名字。在大多情况下它比使用environment变量LOGNAME来得到用户名,或使用pwd.getpwuid(os.getuid())[0] 得到当前有效用户id的登陆名更为有效。在unix中有效,请查看相关文档.。 


    os.getpgid(pid) 
    返回pid进程的group id.如果pid为0,返回当前进程的group id。在unix中有效,请查看相关文档.。 




    os.getpgrp() 
    返回当前进程组的id.在unix中有效,请查看相关文档.。 


    os.getpid() 
    返回当前进程的id.在unix,Windows中有效。 


    os.getppid() 
    返回当前父进程的id.在unix中有效,请查看相关文档.。 
    os.getuid() 
    返回当前当前进程用户的id.在unix中有效,请查看相关文档.。 
    os.getenv(varname[, value]) 
    返回environment变量varname的值,如果value不存在,默认为None.在大多版本的unix,Windows中有效。 


    os.putenv(varname, value) 


    设置varname环境变量为value值。此改变影响以os.system(), popen() 或 fork()和execv()启动的子进程。在大多版本的unix,Windows中有效。 


    当支持putenv()时,在os.environ分配项目时,自动调用合适的putenv()。然而,调用putenv() 不会更新os.environ,所以直接设置os.environ的项。 


    os.setegid(egid) 
    设置当前进程有效组的id.在unix中有效,请查看相关文档.。 


    os.seteuid(euid) 
    设置当前进程有效用户的id.在unix中有效,请查看相关文档.。 
    os.setgid(gid) 
    设置当前进程组的id.在unix中有效,请查看相关文档.。 
    os.setgroups(groups) 
    设置当前进程支持的groups id列表。groups必须是个列表,每个元素必须是个整数,这个操作只对超级用户有效,在unix中有效,请查看相关文档.。 


    os.setpgrp() 
    调用system的setpgrp()或setpgrp(0, 0)() ,依赖于使用的是哪个版本的system. 请查看 Unix手册. 在unix中有效,请查看相关文档.。 
    os.setpgid(pid, pgrp) 
    调用system的setpgid()设置pid进程group的id为pgrp.请查看 Unix手册. 在unix中有效,请查看相关文档.。 
    os.setreuid(ruid, euid) 
    设置当前process当前 和有效的用户id. 在unix中有效,请查看相关文档.。 
    os.setregid(rgid, egid) 
    设置当前process当前 和有效的组id. 在unix中有效,请查看相关文档.。 
    os.getsid(pid) 
    调用system的getsid(). 请查看 Unix手册. 在unix中有效,请查看相关文档.。 


    os.setsid() 
    调用system的setsid().请查看 Unix手册. 在unix中有效,请查看相关文档.。 
    os.setuid(uid) 
    设置当前user id. 在unix中有效,请查看相关文档.。 


    os.strerror(code) 
    返回程序中错误code的错误信息。在某些平台上,当给一个未知的code,strerror()返回NULL,将抛出ValueError。在unix,Windows中有效。 
    os.umask(mask) 
    设置当前权限掩码,同时返回先前的权限掩码。在unix,Windows中有效。 


    os.fdopen(fd[, mode[, bufsize]]) 
    返回一个文件描述符号为fd的打开的文件对象。mode和bufsize参数,和内建的open()函数是同一个意思。在unix,Windows中有效。 
    mode必须以'r', 'w',或者'a'开头, 否则抛出ValueError. 


    以'a'开头的mode, 文件描述符中O_APPEND位已设置. 


    os.popen(command[, mode[, bufsize]]) 
    给或从一个command打开一个管理。返回一个打开的连接到管道文件对象,文件对象可以读或写,在于模式是'r'(默认) 或'w',bufsize参数,和内建的open()函数是同一个意思。 command返回的状态 (在wait()函数中编码) 和调用文件对象的close()返回值一样, 除非返回值是0(无错误终止), 返回None . 在unix,Windows中有效。 


    在 2.6版本中已抛弃. 使用subprocess模块. 


    os.tmpfile() 
    返回一个打开的模式为(w+b)的文件对象 .这文件对象没有文件夹入口,没有文件描述符,将会自动删除. 在unix,Windows中有效。 


    从 version 2.6起: 所有的popen*()函数已抛弃. 使用subprocess模块. 


    os.popen2(cmd[, mode[, bufsize]]) 


    os.popen3(cmd[, mode[, bufsize]]) 


    os.popen4(cmd[, mode[, bufsize]]) 


    16.1.3. 文件描述符操作 
    这些函数操作使用文件描述符引用的I/O stream。 
    文件描述符是与当前进程打开的文件相对应的一些小整数. 例如标准输入的通常文件描述符中 0, 标准输出是1,标准错误是 2. 进程打开的更多文件将被分配为3, 4, 5,等. 这“文件描述符”有一点迷惑性;在Unix平台上, socket和pipe 通常也使用文件描述符引用. 


    os.close(fd) 
    关闭文件描述符fd. 在unix,Windows中有效。 


    这函数是为低层的I/O服务的,应用在os.open()或 pipe()返回的文件描述符上。关闭一个由内建函数open()或 popen()或fdopen()打开的文件对象,使用close()方法。 
    os.closerange(fd_low, fd_high) 
    关闭从fd_low(包含)到fd_high(不包含)所有的文件描述符,忽略错误。在unix,Windows中有效。 
    等同于: 
    for fd in xrange(fd_low, fd_high): 
        try: 
            os.close(fd) 
        except OSError: 
            pass 


    os.dup(fd) 
    返回文件描述符fd的cope. 在unix,Windows中有效。 
    os.dup2(fd, fd2) 
    复制文件描述符fd到fd2, 如果有需要首先关闭fd2. 在unix,Windows中有效。 
    os.fchmod(fd, mode) 
    改变文件描述符为fd的文件’mode‘为mode. 查看chmod()文档 中mode的值. 在unix中有效,请查看相关文档.。 


    version 2.6中新增. 


    os.fchown(fd, uid, gid) 
    改变文件描述符为fd的文件的所有者和group的id为uid和gid. 如果不想它们中的一个, 就设置为-1. 在unix中有效,请查看相关文档.。 


    version 2.6中新增. 


    os.fdatasync(fd) 
    强制将文件描述符为fd的文件写入硬盘. 不强制更新metadata. 在unix中有效,请查看相关文档.。 


    注:在MacOS中无效. 


    os.fpathconf(fd, name) 
    返回一个打开的文件的系统配置信息。name为检索的系统配置的值,它也许是一个定义系统值的字符串,这些名字在很多标准中指定(POSIX.1, Unix 95, Unix 98, 和其它)。一些平台也定义了一些额外的名字。这些名字在主操作系统上pathconf_names的字典中。对于不在pathconf_names中的配置变量,传递一个数字作为名字,也是可以接受的。 在unix中有效,请查看相关文档.。 


    如果name是一个字符串或者未知的,将抛出ValueError。如果name是一个特别的值,在系统上不支持,即使它包含在pathconf_names中,将会抛出错误数字为errno.EINVAL的OSError。 




    os.fstat(fd) 
    返回文件描述符fd的状态,像stat()。在unix,Windows中有效。 
    os.fstatvfs(fd) 
    返回包含文件描述符fd的文件的文件系统的信息,像 statvfs(). 在unix中有效,请查看相关文档.。 
    os.fsync(fd) 
    强制将文件描述符为fd的文件写入硬盘.在Unix, 将调用fsync()函数;在Windows, 调用 _commit()函数. 


    如果你准备操作一个Python文件对象f, 首先f.flush(),然后os.fsync(f.fileno()), 确保与f相关的所有内存都写入了硬盘.在unix,Windows中有效。 


    os.ftruncate(fd, length) 
    裁剪文件描述符fd对应的文件, 所以它最大不能超过文件大小. 在unix中有效,请查看相关文档.。 
    os.isatty(fd) 
    如果文件描述符fd是打开的,同时与tty(-like)设备相连,则返回true, 否则False. 在unix中有效,请查看相关文档.。
    os.lseek(fd, pos, how) 
    设置文件描述符 fd当前位置为pos, how方式修改: SEEK_SET 或者 0 设置从文件开始的计算的pos; SEEK_CUR或者 1 则从当前位置计算; os.SEEK_END或者2则从文件尾部开始. 在unix,Windows中有效。 
    os.open(file, flags[, mode]) 
    打开file同时根据flags设置变量flags ,如果有mode,则设置它的mode. 默认的mode是 0777 (八进制), 当前掩码值是first masked out. 返回刚打开的文件描述符. 在unix,Windows中有效。 


    flag和mode值, 请查看C运行时文档; flag常数(像O_RDONLY and O_WRONLY)在这个模块中也定义了(在下面).


    注:这函数是打算为低层 I/O服务的.正常的使用,使用内建函数open(),返回read()和 write() 等方法创建的文件对象.包装文件描述符为“文件对象”, 使用fdopen(). 


    os.openpty() 
    在一些Unix平台上有效,请查看相关文档. 


    os.pipe() 
    创建一个管道. 返回一对文件描述符(r, w) 分别为读和写. 在unix,Windows中有效。 
    os.read(fd, n) 
    从文件描述符 fd中读取最多n个字节. 返回包含读取字节的string. 文件描述符 fd对应文件已达到结尾, 返回一个空string. 在unix,Windows中有效。 


    注:这函数是打算为低层 I/O服务的 ,同时必须应用在os.open()或者pipe()函数返回的文件描述符. 读取内建函数open()或者by popen()或者fdopen(),或者sys.stdin返回的一个“文件对象” , 使用它的read()或者readline()方法. 


    os.tcgetpgrp(fd) 
    在unix中有效,请查看相关文档.。 
    os.tcsetpgrp(fd, pg) 
    在unix中有效,请查看相关文档.。 
    os.ttyname(fd) 
    在unix中有效,请查看相关文档.。 
    os.write(fd, str) 
    写入字符串到文件描述符 fd中. 返回实际写入的字符串长度. 在unix,Windows中有效。 


    注:这函数是打算为低层 I/O服务的 ,同时必须应用在os.open()或者pipe()函数返回的文件描述符. 读取内建函数open()或者by popen()或者fdopen(),或者sys.stdin返回的一个“文件对象” , 使用它的read()或者readline()方法. 


    下面的常数是open()函数的 flags参数选项. 它们可以使用 bitwise合并或者operator |. 它们中的一些常数并不是在所有平台都有效. 它们更多使用请查看相关资料,在unix上参考open(2)手册页面,windows上http://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx. 


    os.O_RDONLY 
    os.O_WRONLY 
    os.O_RDWR 
    os.O_APPEND 
    os.O_CREAT 
    os.O_EXCL 
    os.O_TRUNC 
    这些常数在Unix and Windows上有效. 
    os.O_DSYNC 
    os.O_RSYNC 
    os.O_SYNC 
    os.O_NDELAY 
    os.O_NONBLOCK 
    os.O_NOCTTY 
    os.O_SHLOCK 
    os.O_EXLOCK 
    这些常数仅在Unix上有效. 
    os.O_BINARY 
    os.O_NOINHERIT 
    os.O_SHORT_LIVED 
    os.O_TEMPORARY 
    os.O_RANDOM 
    os.O_SEQUENTIAL 
    os.O_TEXT 
    这些常数仅在 Windows上有效. 
    os.O_ASYNC 
    os.O_DIRECT 
    os.O_DIRECTORY 
    os.O_NOFOLLOW 
    os.O_NOATIME 
    这些常数是 GNU扩展,如果没有在C库声明刚没有. 
    os.SEEK_SET 
    os.SEEK_CUR 
    os.SEEK_END 
    lseek()函数的参数. 它们的值分别是 0, 1,和 2. 在Unix and Windows上有效. 


    版本2.5新增. 


    16.1.4. 文件和文件夹 
    os.access(path, mode) 
    使用现在的uid/gid尝试访问path. 注大部分操作使用有效的uid/gid, 因此运行环境可以在 suid/sgid环境尝试,如果用户有权访问path. mode为F_OK,测试存在的path,或者它可以是包含R_OK, W_OK和X_OK或者R_OK, W_OK和X_OK其中之一或者更多.如果允许访问返回 True , 否则返回False. 查看Unix手册access(2) 获取更多信息. 在unix,Windows中有效。 


    注:使用access()去测试用户是否授权. 在实际使用open()打开一个文件前测试会创建一个安全漏洞前 , 因为用户会利用这短暂时间在检测和打开这个文件去修改它. 


    注:即使access()表明它将succeed,但I/O 操作也可能会失败, 如网络文件系统. 


    os.F_OK 
    作为access()的mode参数,测试path是否存在. 
    os.R_OK 
    包含在access()的mode参数中 , 测试path是否可读. 
    os.W_OK 
    包含在access()的mode参数中 ,测试path是否可写. 
    os.X_OK 
    包含在access()的mode参数中 ,测试path是否可执行.. 
    os.chdir(path) 
    改变当前工作目录. 在unix,Windows中有效。 


    os.fchdir(fd) 
    在unix中有效,请查看相关文档.。 
    os.getcwd() 
    返回当前工作目录的字符串, 在unix,Windows中有效。 
    os.getcwdu() 
    返回一个当前工作目录的Unicode对象. 在unix,Windows中有效。 
    os.chflags(path, flags) 
    在unix中有效,请查看相关文档.。 




    os.chroot(path) 
    在unix中有效,请查看相关文档.。 


    os.chmod(path, mode) 
    改变path的mode到数字mode. mode为下面中的一个 (在stat模块中定义)或者bitwise或者它们的组合: 


    ?stat.S_ISUID 
    ?stat.S_ISGID 
    ?stat.S_ENFMT 
    ?stat.S_ISVTX 
    ?stat.S_IREAD 
    ?stat.S_IWRITE 
    ?stat.S_IEXEC 
    ?stat.S_IRWXU 
    ?stat.S_IRUSR 
    ?stat.S_IWUSR 
    ?stat.S_IXUSR 
    ?stat.S_IRWXG 
    ?stat.S_IRGRP 
    ?stat.S_IWGRP 
    ?stat.S_IXGRP 
    ?stat.S_IRWXO 
    ?stat.S_IROTH 
    ?stat.S_IWOTH 
    ?stat.S_IXOTH 
    在unix,Windows中有效。 


    注:尽管Windows支持chmod(), 你只可以使用它设置只读 flag (通过stat.S_IWRITE和stat.S_IREAD 常数或者一个相对应的整数)。所有其它的 bits都忽略了. 


    os.chown(path, uid, gid) 
    在unix中有效,请查看相关文档.。 
    os.lchflags(path, flags) 
    在unix中有效,请查看相关文档.。 


    新增version 2.6. 


    os.lchmod(path, mode) 
    在unix中有效,请查看相关文档.。 


    新增version 2.6. 


    os.lchown(path, uid, gid) 
    在unix中有效,请查看相关文档.。 


    新增version 2.3. 


    os.link(source, link_name) 
    在unix中有效,请查看相关文档.。 
    os.listdir(path) 
    返回path指定的文件夹包含的文件或文件夹的名字的列表. 这个列表以字母顺序. 它不包括 '.' 和'..' 即使它在文件夹中. 在unix,Windows中有效。 


    Changed in version 2.3:在Windows NT/2k/XP 和Unix, 如果文件夹是一个Unicode object, 结果将是 Unicode objects列表. 不能解码的文件名将仍然作为string objects返回. 


    os.lstat(path) 
    像stat(),但是没有符号链接. 这是stat()的别名 在某些平台上,例如Windows. 
    os.mkfifo(path[, mode]) 
    在unix中有效,请查看相关文档.。 






    os.mknod(filename[, mode=0600, device]) 
    创建一个名为filename文件系统节点(文件,设备特别文件或者命名pipe)。 mode指定创建或使用节点的权限, 组合 (或者bitwise) stat.S_IFREG, stat.S_IFCHR, stat.S_IFBLK, 和stat.S_IFIFO (这些常数在stat模块). 对于 stat.S_IFCHR和stat.S_IFBLK, 设备定义了 最新创建的设备特殊文件 (可能使用 os.makedev()),其它都将忽略. 


    新增version 2.3. 


    os.major(device) 
    从原始的设备号中提取设备major号码 (使用stat中的st_dev或者st_rdev field). 


    新增version 2.3. 


    os.minor(device) 
    从原始的设备号中提取设备minor号码 (使用stat中的st_dev或者st_rdev field ). 


    新增version 2.3. 


    os.makedev(major, minor) 
    以major和minor设备号组成一个原始设备号. 


    新增version 2.3. 


    os.mkdir(path[, mode])   
    以数字mode的mode创建一个名为path的文件夹.默认的 mode 是 0777 (八进制). 在有些平台上, mode是忽略的. 当使用时。这当前的掩码值是first masked out. 在unix,Windows中有效。 
    os.mkdir('sunck')    #在当前目录下创建新目录
    os.mkdir(r"C:\\Users\\Administrator\\.spyder-py3\\kaige")    #在指定目录下创建新目录

    也可以创建临时文件夹; 查看tempfile模块tempfile.mkdtemp()函数. 


    os.makedirs(path[, mode]) 
    递归文件夹创建函数。像mkdir(), 但创建的所有intermediate-level文件夹需要包含子文件夹. 抛出一个error exception如果子文件夹已经存在或者不能创建. 默认的 mode 是 0777 (八进制). 在有些平台上, mode是忽略的.当使用时。这当前的掩码值是first masked out。 


    注: 
    makedirs()变得迷惑 如果路径元素包含os.pardir. 
    现在可以正确处理 UNC路径. 


    os.pathconf(path, name) 
    在unix中有效,请查看相关文档.。 


    os.pathconf_names 
    在unix中有效,请查看相关文档.。 
    os.readlink(path) 
    在unix中有效,请查看相关文档.。 


    os.remove(path) 
    删除路径为path的文件.如果path 是一个文件夹,将抛出OSError; 查看下面的rmdir()删除一个 directory. 这和下面的unlink()函数文档是一样的.在Windows,尝试删除一个正在使用的文件将抛出一个exception;在Unix,directory入口会被删除,但分配给文件的存储是无效的,直到原来的文件不再使用. 在unix,Windows中有效。 
    os.removedirs(path) 
    递归删除directorie. 像rmdir(), 如果子文件夹成功删除, removedirs()才尝试它们的父文件夹,直到抛出一个error(它基本上被忽略,因为它一般意味着你文件夹不为空).例如, os.removedirs('foo/bar/baz') 将首先删除 'foo/bar/baz', 然后删除 'foo/bar' 和 'foo' 如果它们是空的. 如果子文件夹不能被成功删除,将抛出OSError . 


    新增version 1.5.2. 


    os.rename(src, dst)     
    重命名file或者directory从 src 到dst.如果dst是一个存在的directory, 将抛出OSError. 在Unix, 如果dst在存且是一个file,如果用户有权限的话,它将被安静的替换. 操作将会失败在某些Unix 中如果src和dst在不同的文件系统中. 如果成功, 这命名操作将会是一个原子操作 (这是POSIX 需要). 在 Windows上, 如果dst已经存在, 将抛出OSError,即使它是一个文件. 在unix,Windows中有效。 如os.rename("sunck","kaige")  将sunck文件重命名为kaige
    os.renames(old, new) 
    递归重命名文件夹或者文件。像rename() 


    新增version 1.5.2. 




    os.rmdir(path) 
    删除path文件夹. 仅当这文件夹是空的才可以, 否则, 抛出OSError. 要删除整个文件夹树, 可以使用shutil.rmtree(). 在unix,Windows中有效。 
    os.stat(path)    #获取文件属性
    执行一个stat()系统调用在给定的path上. 返回值是一个对象,属性与stat结构成员有关: st_mode (保护位), st_ino (inode number), st_dev (device), st_nlink (number of hard links), st_uid (所有用户的id), st_gid (所有者group id), st_size (文件大小, 以位为单位), st_atime (最近访问的时间), st_mtime (最近修改的时间), st_ctime (依赖于平台;在Unix上是metadata最近改变的时间,或者在 Windows上是创建时间): 


    >>> import os 
    >>> statinfo = os.stat('somefile.txt') 
    >>> statinfo 
    (33188, 422511L, 769L, 1, 1032, 100, 926L, 1105022698,1105022732, 1105022732) 
    >>> statinfo.st_size 
    926L 
    >>> 
    如果stat_float_times()返回True,time值是floats,以second进行计算. 一秒的小数部分也会显示出来, 如果系统支持. 在Mac OS, 时间常常是 floats.查看 stat_float_times() 获取更多信息. 


    在一些Unix系统上(例如 Linux), 下面的属性也许是有效的: st_blocks (为文件分配了多少块), st_blksize (文件系统blocksize), st_rdev (设备型号如果是一个inode设备). st_flags (用户为文件定义的flags). 


    在unix,Windows中有效。 






    os.stat_float_times([newvalue]) 
    决定stat_result是否以float对象显示时间戳. 


    os.statvfs(path) 
    在unix中有效,请查看相关文档.。 




    os.symlink(source, link_name) 
    在unix中有效,请查看相关文档.。 
    os.tempnam([dir[, prefix]]) 
    为创建一个临时文件返回一个唯一的path。在Windows使用TMP . 依赖于使用的C库; 
    警告: 
    使用tempnam() 对于symlink攻击是一个漏洞; 考虑使用tmpfile()代替. 


    在unix,Windows中有效。 


    os.tmpnam() 
    为创建一个临时文件返回一个唯一的path. 
    Warning: 
    使用tempnam() 对于symlink攻击是一个漏洞; 考虑使用tmpfile()代替. 


    在unix,Windows中有效。 


    os.TMP_MAX 
    tmpnam() 将产生唯一名字的最大数值. 
    os.unlink(path) 
    删除 file路径. 与remove()相同; 在unix,Windows中有效。 
    os.utime(path, times) 
    返回指定的path文件的访问和修改的时间。如果时间是 None, 则文件的访问和修改设为当前时间 。 否则, 时间是一个 2-tuple数字, (atime, mtime) 用来分别作为访问和修改的时间. 
    在unix,Windows中有效。 


    os.walk(top[, topdown=True[, οnerrοr=None[, followlinks=False]]]) 

    输出在文件夹中的文件名通过在树中游走,向上或者向下.在根目录下的每一个文件夹(包含它自己), 产生3-tuple (dirpath, dirnames, filenames)

    【文件夹路径, 文件夹名字, 该路径下的所有文件名】



    dirpath是一个字符串, directory的路径. dirnames在dirpath中子文件夹的列表 (不包括 '.' '..'). filenames 文件是在dirpath不包含子文件夹的文件名的列表. 注: 列表中的names不包含path.为获得dirpath中的一个文件或者文件夹的完整路径 (以顶目录开始)或者, 操作 os.path.join(dirpath, name). 


    如果optional参数topdown为True或者not指定, 一个directory的3-tuple将比它的任何子文件夹的3-tuple先产生 (directories 自上而下).如果topdown为 False, 一个directory的3-tuple将比它的任何子文件夹的3-tuple后产生 (directories 自下而上)。 


    当topdown为True,调用者可以修改列表中列出的文件夹名字(也可以使用del或者slice), walk() 仅仅递归每一个包含在dirnames中的子文件夹; 可以减少查询, 利用访问的特殊顺序,或者甚至 告诉 walk() 关于文件夹的创建者或者重命名在它重新walk()之前.修改文件名当topdown 为False时是无效的, 因为在bottom-up模式中在dirnames中的directories比dirpath 它自己先产生 . 


    默认listdir()的errors将被忽略. 如果optional参数onerror被指定,它应该是一个函数; 它调用时有一个参数, 一个OSError实例. 报告这错误后,继续walk,或者抛出exception终止walk.注意filename是可用的的 ,exception对象的filename属性. 


    默认, walk() 不会进入符号链接 . 


    新增version 2.6: 






    注:如果你传入一个相对的pathname, 不要在walk()执行过程中改变当前文件夹. walk()不会改变改前文件夹, 同时确保它的调用者也不会改变. 






    import os 
    from os.path import join, getsize 
    for root, dirs, files in os.walk('python/Lib/email'): 
        print root, "consumes", 
        print sum(getsize(join(root, name)) for name in files), 
        print "bytes in", len(files), "non-directory files" 
        if 'CVS' in dirs: 
            dirs.remove('CVS') # don't visit CVS directories 




    # Delete everything reachable from the directory named in "top", 
    # assuming there are no symbolic links. 
    # CAUTION: This is dangerous! For example, if top == '/', it 
    # could delete all your disk files. 
    import os 
    for root, dirs, files in os.walk(top, topdown=False): 
        for name in files: 
            os.remove(os.path.join(root, name)) 
        for name in dirs: 
            os.rmdir(os.path.join(root, name)) 
    新增version 2.3. 




    使用函数来创建和管理进程。 
    使用 exec*() 函数使用arguments列表来载入新程序. 在每个例子, 一个用户敲入一个命令行中的第一个参数传递给程序作为它自己的名字而不是作为参数. 对于C 程序员来说, 它是传递给main()的argv[0]. 例如, os.execv('/bin/echo', ['foo', 'bar']) 将仅仅在标准输出上打印bar; foo 将被忽略. 


    os.abort() 
    产生一个SIGABRT标识到当前的进程.在Unix,这默认的行为是产生一个主要的dump;在Windows,这进程立即返回退出以一个状态码为3. 程序使用signal.signal()来注册一个SIGABRT 将导致不同的行为. 在unix,Windows中有效。 
    os.execl(path, arg0, arg1, ...) 
    os.execle(path, arg0, arg1, ..., env) 
    os.execlp(file, arg0, arg1, ...) 
    os.execlpe(file, arg0, arg1, ..., env) 
    os.execv(path, args) 
    os.execve(path, args, env) 
    os.execvp(file, args) 
    os.execvpe(file, args, env) 
    这些函数将执行一个新程序, 替换当前进程; 他们没有返回.在Unix,新的执行体载入到当前的进程, 同时将和当前的调用者有相同的id. 将报告Errors 当抛出 OSError时. 


    当前的进程立即被替代. 打开文件对象和描述符不会被刷新, 如果在这些打开的文件中有数据缓冲区, 应该在调用exec*() 函数之前,使用sys.stdout.flush()或者os.fsync()flush它们 . 


    在unix,Windows中有效。 


    os._exit(n) 
    使用状态n退出系统,没有调用清理函数,刷新缓冲区。 在unix,Windows中有效。 


    注:标准退出的方法是sys.exit(n). _exit()一般使用于fork()产生的子进程中. 


    os.EX_OK 
    在unix中有效,请查看相关文档.。 


    新增version 2.3. 


    os.EX_USAGE 
    在unix中有效,请查看相关文档.。 


    新增version 2.3. 


    os.EX_DATAERR 
    在unix中有效,请查看相关文档.。 


    新增version 2.3. 


    os.EX_NOINPUT 
    在unix中有效,请查看相关文档.。 


    新增version 2.3. 


    os.EX_NOUSER 
    在unix中有效,请查看相关文档.。 


    新增version 2.3. 


    os.EX_NOHOST 
    在unix中有效,请查看相关文档.。 


    新增version 2.3. 


    os.EX_UNAVAILABLE 
    在unix中有效,请查看相关文档.。 


    新增version 2.3. 


    os.EX_SOFTWARE 
    在unix中有效,请查看相关文档.。 


    新增version 2.3. 


    os.EX_OSERR 
    在unix中有效,请查看相关文档.。 


    新增version 2.3. 


    os.EX_OSFILE 
    在unix中有效,请查看相关文档.。 


    新增version 2.3. 


    os.EX_CANTCREAT 
    在unix中有效,请查看相关文档.。 


    新增version 2.3. 


    os.EX_IOERR 
    在unix中有效,请查看相关文档.。 


    新增version 2.3. 


    os.EX_TEMPFAIL 
    在unix中有效,请查看相关文档.。 


    新增version 2.3. 


    os.EX_PROTOCOL 
    在unix中有效,请查看相关文档.。 


    新增version 2.3. 


    os.EX_NOPERM 
    在unix中有效,请查看相关文档.。 


    新增version 2.3. 


    os.EX_CONFIG 
    在unix中有效,请查看相关文档.。 


    新增version 2.3. 


    os.EX_NOTFOUND 
    在unix中有效,请查看相关文档.。 


    新增version 2.3. 


    os.fork() 
    在unix中有效,请查看相关文档.。 


    os.forkpty() 
    在一些unix中有效,请查看相关文档 
    os.kill(pid, sig) 
    在unix中有效,请查看相关文档.。 


    os.killpg(pgid, sig) 
    在unix中有效,请查看相关文档.。 


    新增version 2.3. 


    os.nice(increment) 
    在unix中有效,请查看相关文档.。 
    os.plock(op) 
    在unix中有效,请查看相关文档.。 
    os.popen(...) 
    os.popen2(...) 
    os.popen3(...) 
    os.popen4(...) 
    运行子进程, 返回交流的打开的管道.这些函数在前面创建文件对象时介绍过. 
    os.spawnl(mode, path, ...) 
    os.spawnle(mode, path, ..., env) 
    os.spawnlp(mode, file, ...) 
    os.spawnlpe(mode, file, ..., env) 
    os.spawnv(mode, path, args) 
    os.spawnve(mode, path, args, env) 
    os.spawnvp(mode, file, args) 
    os.spawnvpe(mode, file, args, env) 
    在新进程中执行程序path 
    (请使用subprocess模块) 


    如果模式是 P_NOWAIT, 返回新进程的id;如果模式是P_WAIT,返回进程退出时的状态码。 如果正常退出,或者-signal, 当 signal 是killed.在 Windows, 进程id实际上是process的handle,所它可以使用于waitpid()函数. 




    import os 
    os.spawnlp(os.P_WAIT, 'cp', 'cp', 'index.html', '/dev/null') 


    L = ['cp', 'index.html', '/dev/null'] 
    os.spawnvpe(os.P_WAIT, 'cp', L, os.environ) 
    在unix,Windows中有效。 


    新增version 1.6. 


    os.P_NOWAIT 
    os.P_NOWAITO 
    spawn*()族函数参数mode的可选值. 如果给出其中任一个值, 新进程一创建完成,spawn*()函数将立即返回 ,返回进程id的值. 在unix,Windows中有效。 


    新增version 1.6. 


    os.P_WAIT 
    spawn*()族函数参数mode的可能值. 如果将它赋值给mode, spawn*() 函数不返回,直接运行结束 以及如果运行成功 ,将返回进程的退出码,或者如果 signal杀掉了这个进程,将返回-signal. 在unix,Windows中有效。 


    新增version 1.6. 


    os.P_DETACH 
    os.P_OVERLAY 
    spawn*()族函数参数mode的可选值。P_DETACH和P_NOWAIT很相似,但是新进程依附在调用进程的console上。如果使用了P_OVERLAY,当前进程将被替换,spawn*()函数将无返回 。在Windows上有效。 
    新增version 1.6. 


    os.startfile(path[, operation]) 
    以相关的程序打开文件. 


    当operation没有指定或者'open', 这操作就像在Windows Explorer双击文件,或者将这个文件作为交互命令行中start命令的参数:与文件扩展相关的程序打开文件。 


    当指定另外操作时, 它必须是“command verb” 它指定应该对文件做什么.像Microsoft的'print' 'edit' (作用在文件上) 'explore' and 'find' (作用在文件夹上). 


    startfile()只要相关的应该程序一启动就返回。 没有选项等待应用程序关闭, 没有方法接收应用程序退出的状态. path参数与当前directory相关. 如果你想使用一个绝对路径,确保第一个字符不是 ('/')。 使用os.path.normpath() 函数确保路径对于win32来说是正确的. 在Windows上有效. 


    新增version 2.0. 


    新增version 2.5: The operation parameter. 


    os.system(command) 
    在shell中执行string命令. 这是使用标准C函数system(), 有同样的限制. 例如改变 sys.stdin, 不影响命令执行环境. 


    在Unix, 请查看相当文档. 


    在Windows, 返回值是在 shell运行命令的返回值。 


    在unix,Windows中有效。 


    subprocess模块提供了一个更强大的功能产生新进程和接收它们的结果; 


    os.times() 
    返回一个5-tuple的浮点数字, 表示(处理器或者其它)累积时间, 以秒为单位. items为:用户时间, 系统time, 子用户time, 子系统time, 和从过去一个固定的点真实流逝的时间. 在unix,Windows中有效。在Windows, 仅仅填充开始两项, 其它都为0. 
    os.wait() 
    在unix中有效,请查看相关文档.。 
    os.waitpid(pid, options) 
    Unix:等待一个指定的pid的子进程完成, 返回一个tuple返回它的进程id和退出状态 . 一般情况下option设为0. 


    更强细请查看相关文档 


    在Windows: 等待一个指定的pid的进程完成, 返回一个tuple返回它的进程id和退出状态向左移动了8位 。 如果pid小于或等于0没有特别的意思,将抛出exception. integer options 没有任何影响. pid 可以指向任何进程的id,不一定是子进程的id. 


    os.wait3([options]) 
    在unix中有效,请查看相关文档.。 


    新增version 2.5. 


    os.wait4(pid, options) 
    在unix中有效,请查看相关文档.。 


    新增version 2.5. 


    os.WNOHANG 
    在unix中有效,请查看相关文档.。 
    os.WCONTINUED 
    在某些unix中有效,请查看相关文档.。 


    新增version 2.3. 


    os.WUNTRACED 
    在unix中有效,请查看相关文档.。 




    os.WCOREDUMP(status) 
    在unix中有效,请查看相关文档.。 


    新增version 2.3. 


    os.WIFCONTINUED(status) 
    在unix中有效,请查看相关文档.。 


    新增version 2.3. 


    os.WIFSTOPPED(status) 
    在unix中有效,请查看相关文档.。 
    os.WIFSIGNALED(status) 
    在unix中有效,请查看相关文档.。 
    os.WIFEXITED(status) 
    在unix中有效,请查看相关文档.。 
    os.WEXITSTATUS(status) 
    在unix中有效,请查看相关文档.。 
    os.WSTOPSIG(status) 
    在unix中有效,请查看相关文档.。 
    os.WTERMSIG(status) 
    在unix中有效,请查看相关文档.。 
    16.1.6. Miscellaneous System Information 
    os.confstr(name) 
    在unix中有效,请查看相关文档.。 




    os.confstr_names 
    在unix中有效,请查看相关文档.。 
    os.getloadavg() 
    在unix中有效,请查看相关文档.。 


    新增version 2.3. 


    os.sysconf(name) 
    在unix中有效,请查看相关文档.。 


    os.curdir 
    操作系统用此常数字符串作为当前文件夹的引用,获取当前目录。 
    os.pardir 
    操作系统用此常数字符串作为父文件夹的引用。 
    os.sep 
    系统使用此字符来分割路径。 
    os.altsep 
    系统使用另外一个字符来分割路径,如果只有一个分割字符存在,则是None. 
    os.extsep 
    分割基本文件名和扩展名的字符。 




    新增version 2.2. 


    os.pathsep 
    系统使用此字符来分割搜索路径(像PATH),例如POSIX上':',Windows上的';',也可以通过os.path 
    os.defpath 
    默认的搜索路径用作 exec*p*()和spawn*p*()如果环境没有 'PATH'. 也可以通过os.path. 
    os.linesep 
    当前平台上的换行符字符串. 在POSIX上是'\n',或者 在Windows上是'\r\n' . 不要使用 os.linesep作为换行符,当写入文本文件时 (默认); 使用'\n'代替, 在所有平台上. 
    os.devnull 
    空设备的文件路径.例如:POSIX上 '/dev/null' . 也可以通过os.path. 


    新增version 2.4. 


    16.1.7. 其它 函数 
    os.urandom(n) 
    返回n个随机byte值的string,作为加密使用
    >>> os.path.dirname('c:\\Python\\a.txt')
    'c:\\Python'


    展开全文
  • OS是什么?

    2020-05-25 20:58:13
    何为OSOS的目标1.方便性2.有效性3.可扩充性4.开放性OS的作用1.作为用户与计算机硬件系统之间的接口2.作为系统资源的管理者3.实现对计算机资源的抽象推动OS发展的主要动力OS的发展过程1.未配置操作系统人工操作方式...

    OS的目标

    1.方便性

    -面向用户
    -极大方便用户操作

    2.有效性

    -面向系统
    -提高系统资源利用率(推动OS发展的最主要动力)
    -提高系统吞吐量

    3.可扩充性

    -推动OS结构的不断发展
    -OS结构:无结构—模块化结构—层次化结构—微内核结构…

    4.开放性

    -OS应遵循世界标准规范,特别是开放系统互连OSI标准
    -遵循标准都能彼此兼容,方便实时互连。

    OS的作用

    1.作为用户与计算机硬件系统之间的接口

    OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机
    用户可以通过命令方式系统调用方式图标-窗口方式实现与操作系统的通信

    2.作为系统资源的管理者

    一个计算机系统中,通常都含有多种硬件和软件资源。归纳起来分为:处理机、存储器、I/O设备、文件(数据和程序)。

    OS即对这四部分进行管理
    -处理机管理负责分配和控制处理机;
    -存储器管理负责内存的分配与回收;
    -I/O设备管理负责I/O设备的分配(回收)与操纵;
    -文件管理用于实现对文件的存取、共享和保护。

    为避免用户对计算机共享资源的使用冲突,OS必须对使用资源的请求进行授权,以协调诸用户对共享资源的使用。

    3.实现对计算机资源的抽象

    为了方便用户使用I/O设备,人们在裸机上覆盖了一层I/O设备管理软件,由它来实现对I/O设备操作的细节,并向上将I/O设备抽象为一组数据结构以及一组I/O操作命令,使用户输入数据无需关心I/O是如何具体实现的。

    推动OS发展的主要动力

    1.不断提高计算机资源利用率
    2.方便用户
    3.器件的不断更新换代
    4.计算机体系结构的不断发展
    5.不断提出新的应用需求

    OS的发展过程

    1.未配置操作系统

    人工操作方式

    缺点:
    -用户独占计算机
    -CPU等待人工操作

    脱机输入/输出(Off-Line I/O)方式

    一个作业完成了,再装载另一个作业。
    在这里插入图片描述
    优点:
    -减少了CPU的空闲时间
    -提高了I/O速度

    2.单道批处理系统

    在这里插入图片描述 监督程序(monitor)
    运行控制权

    概念: 系统对作业的处理都是成批进行的、且
    -内存中始终只保持一道作业,称为单道批处理
    -系统(simple batch system) 。

    批处理系统的引入是为了提高系统资源的利用率和吞吐量

    单道批处理系统特征
    自动性、顺序性、单道性

    在这里插入图片描述

    3.多道批处理系统

    系统中同时驻留多个作业
    在这里插入图片描述
    多道引入的优点:
    -提高CPU利用率
    -提高内存和I/o设备利用率
    -提高了系统吞吐量

    缺点:
    -平均周转时间长、无交互能力

    特征
    -多道性
    -无序性
    -调度性(作业调度、进程调度)

    多道批处理系统需解决的问题
    -处理机管理问题
    -内存管理问题
    -I/O管理问题
    -文件管理问题
    -作业管理问题

    4.分时系统(Time Sharing System)

    4.1 分时系统的引入

    概念:
    指一台主机上连接了多个带有显示器和键盘的终端,同时允许多个用户共享主机中的资源,各个用户都可通过自己的终端以交互方式使用计算机。

    用户的需求
    -人机交互性
    -共享主机
    -便于用户上机

    4.2 分时系统在实现中的关键问题

    -及时接收:多终端卡、输入缓冲区
    -及时处理:交互作业应在内存、响应时间应短

    4.3 分时系统的实现方法

    交互式作业直接进入内存

    分配时间片方式实现
    -把处理机的运行时间分成很短的时间片,按时间片轮流把处理机分配给各联机作业使用。若某个作业在分配给它的时间片内不能完成其计算,则该作业暂时中断,把处理机让给另一作业使用,等待下一轮时再继续其运行。
    -由于计算机速度很快,作业运行轮转得很快,给每个用户的印象是,好像他独占了一台计算机。

    4.4 分时系统的特征

    -多路性
    -独立性
    -及时性
    -交互性

    5.实时系统(Real Time System)

    5.1 实时系统的引入(要求及时处理的场合)

    概念:
    系统能及时响应外部事件的请求,在规定时间内完成对该事件的处理。
    类型:
    -实时控制
    -实时信息处理

    5.2 实时任务类型

    按任务执行是否呈现周期性来划分
    -周期性的(联系周期)
    -非周期性的(联系开始或完成截止时间)
    根据对截止时间的要求来划分
    -硬实时任务
    -软实时任务

    5.3 实时、分时的比较

    -多路性:相同
    -独立性:相同
    -及时性:实时系统要求更高
    -交互性:分时系统交互性更强
    -可靠性:实时系统要求更高

    OS的基本特性

    1.并发

    -并行是指两或多个事件在同一时刻发生。
    -并发是两或多个事件在同一时间间隔内发生。
    -进程:系统中能独立运行并作为资源分配的基本单位。引入线程后,独立运行的单位变为线程。

    2.共享

    -系统中资源可供内存中多个并发执行的进程共同使用
    -互斥共享:一段时间只允许一个进程访问该资源
    -同时访问:微观上仍是互斥的

    3.虚拟

    -通过某种技术把一个物理实体变为若干个逻辑上的对应物。若n是某一物理设备所对应的虚拟的逻辑设备数,则虚拟设备的速度必然是物理设备速度的1/n。

    4.异步

    -运行进度不可预知

    OS的主要功能

    1.处理机管理功能

    1.1 进程控制

    -创建/撤消进程
    -迁移进程状态
    -一般由进程控制原语完成

    1.2 进程同步

    -为使多个进程有条不紊地运行,应建立同步机制
    -包括进程互斥/同步,次序协调

    1.3 进程通信

    源于进程合作,如:输入进程、计算进程、打印进程相互间有信息传递
    类型:
    -直接通信:
    进程A发message,进程B收message。
    -间接通信:
    进程A发message到中间实体( 如mailbox),进程B从中间实体收message。

    1.4 调度(作业与进程)

    作业调度:
    为作业分配必要资源,调入内存建立进程,并使之进入就绪队列。

    进程调度:
    从就绪队列中选出进程,分配CPU,使之运行。

    调度算法:
    FCFS、 优先权等

    2.存储管理

    目的:
    方便用户使用,且提高存储器利用率

    2.1 内存分配

    -静态分配
    -动态分配

    需内存分配的数据结构及内存分配和回收功能

    2.2 内存保护

    例:
    设置上、下界寄存器,每条指令进行越界检查(一般是硬件实现)

    2.3 地址映射

    -地址范围: 地址
    -逻辑空间: 逻辑地址(相对地址)
    -物理空间: 物理地址(绝对地址)

    2.4 内存扩充

    -利用虚存技术,从逻辑上扩充内存容量
    -系统应有:请求调入/置换功能以支持虚存技术

    3.设备管理功能

    任务: 提高1/0利用率和速度,方便用户

    3.1 缓冲管理

    -缓冲区:用来解决CPU-I/0矛盾, 如: CPU快则应多创建缓冲区。

    3.2 设备分配

    -包括:设备、设备控制器、I/O通信的分配和回收

    3.3 设备处理

    -指控制设备进行实际的操作,包括读、写等以及向CPU发中断。
    -设备处理/驱动程序应能根据用户的I/0请求,自动地构成通道程序。

    3.4.设备独立性和虚拟设备

    -独立性:即program与设备无关性,使program 易于重定向,增加了可移植性。
    -虚拟设备

    4.文件管理功能

    任务: 方便用户,提供安全性

    4.1 文件存贮空间的管理

    -例:creatfile:文件系统根据文件长度自动分配连续或离散的扇区,并提供“一句柄”表示该文件。

    4.2 目录管理

    -使用户按名存取,提高速度。

    4.3 文件的读、写管理和存取控制(保护)

    5.用户接口

    5.1 命令接口.

    由一组“命令”集组成,分为联机和脱机用户接口
    1.联机用户接口
    -由一组键盘操作命令及命令解释程序所组成
    2.脱机用户接口(批处理用户接口)
    -用JCL写作业说明书

    5.2 程序接口

    -系统调用
    -高级语言的库函数

    5.3 图形接口

    -如win的copy文件,采用“拖”来完成,生动,不需记忆

    OS结构设计

    1.传统操作系统结构

    1.1 无结构操作系统

    一组过程集,各过程可相互调用,也叫整体系统结构。
    缺点: 逻辑复杂,维护困难

    1.2 模块化操作系统

    -通过分解来控制大型软件复杂度:
    如:进程模块、内存模块…,各模块内进一步划分子模块。
    优点:
    -提高OS设计的可维护性、正确性、可理解性
    -增强OS的可适应性
    -加速OS的开发过程:并行开发模块
    缺点:
    -接口不易确定
    -模块依赖关系可能复杂(对于大型软件而言)

    1.3 分层式操作系统

    有序分层的基本概念:
    -可简化设计的复杂度
    -下层为上层提供服务
    层次的设置应考虑的因素:
    -程序嵌套:各模块间嵌套关系复杂
    -运行频率:随层次的增高,相应软件的运行速度就随之下降
    -公用模块:低层
    -用户接口:高层

    2.微内核操作系统结构

    -提高了系统的灵活性和可扩充性
    -提高了软件的可靠性
    -适合于分布式系统
    在这里插入图片描述
    面向对象的程序设计技术
    优点:
    -可扩展性
    -继承性
    微内核技术
    -引入:提高系统的灵活性
    -采用C/S模式
    基本功能:
    进程、内存、IPC等基本管理功能

    展开全文
  • python中OS模块;

    千次阅读 多人点赞 2019-07-11 18:07:30
    OS模块 OS模块简单的来说它是一个Python的系统编程的操作模块,可以处理文件和目录这些我们日常手动需要做的操作。 在自动化测试中,经常需要查找操作文件,比如查找配置文件(从而读取配置文件的信息),查找测试报告...

    OS模块

    OS模块简单的来说它是一个Python的系统编程的操作模块,可以处理文件和目录这些我们日常手动需要做的操作。

    在自动化测试中,经常需要查找操作文件,比如查找配置文件(从而读取配置文件的信息),查找测试报告等等,经常会对大量文件和路径进行操作,这就需要依赖os模块。

    >>> import os    #导入OS模块;
    >>> help(os)    #查看os模块帮助文档,里面详细的模块相关函数和使用方法;

    os 模块中常用的属性和函数

    1、os.getcwd()

    查看当前所在目录(路径);

    >>> import os
    >>> print(os.getcwd())
    /home
    

    2、os.chdir()

    切换目录(路径);

    >>> import os
    >>> os.chdir(r'/etc/sysconfig/')
    >>> print(os.getcwd())
    /etc/sysconfig
    

    3、os.curdir、os.pardir

    返回当前目录字符串名、返回当前目录的父目录的字符串名;

    >>> import os
    >>> print(os.curdir)
    .
    >>> print(os.pardir)
    ..
    

    4、os.makedirs()

    生成一个多层递归目录

    >>> import os
    >>> os.makedirs('/home/test/xuan')

    5、os.removedirs()

    若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依次类推;

    >>> import os
    >>> os.removedirs('test/xuan')
    

    6、os.mkdir()

    创建一个目录;

    >>> import os
    >>> os.mkdir('test')        #只能创建一个目录
    >>> os.mkdir('abc/123/xxx')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    FileNotFoundError: [Errno 2] No such file or directory: 'abc/123/xxx'
    
    [root@server-7 home]# tree /home/
    /home/
    └── test
    

    7、os.rmdir()

    删除一个目录,若目录不为空则无法删除,报错;

    >>> import os
    >>> os.mkdir('test/abc')    #在test下创建一个abc;
    >>> os.rmdir('test')        #无法删除test;
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    OSError: [Errno 39] Directory not empty: 'test'
    >>> os.rmdir('test/abc')    #可以删除abc,因为abc目录下为空;
    >>> 
    

    8、os.listdir()

    显示指定目录下,所有的文件和子目录,包括隐藏文件;

    >>> import os
    >>> dirs = os.listdir('/root')
    >>> print(dirs)
    ['.bash_logout', '.bash_profile', '.cshrc', '.tcshrc', '.bashrc', 'full_stack', 'jf_blog', 'node-v8.9.4-linux-x64', '.bash_history', '.config', '.npm', '.pki', '.ssh', '.gitconfig', '.oracle_jre_usage', '.cache', '.python_history', 'douban', 'mysql57-community-release-el7-10.noarch.rpm', '.mysql_history', '.viminfo']
    
    [root@server-7 ~]# ls -al
    total 108
    dr-xr-x---. 12 root root  4096 Jul 11 11:38 .
    dr-xr-xr-x. 21 root root  4096 Jul  5 18:02 ..
    -rw-r--r--   1 root root 24755 Jul 11 14:05 .bash_history
    -rw-r--r--.  1 root root    18 Dec 29  2013 .bash_logout
    -rw-r--r--.  1 root root   176 Dec 29  2013 .bash_profile
    -rw-r--r--   1 root root   382 Jun 20 22:04 .bashrc
    drwx------   3 root root    16 Jun 20 21:53 .cache
    drwx------   3 root root    24 Jun  5 15:04 .config
    -rw-r--r--.  1 root root   100 Dec 29  2013 .cshrc
    drwxr-xr-x   3 root root    36 Jun 23 19:51 douban
    drwxr-xr-x   2 root root    22 Jul 10 14:02 full_stack
    -rw-r--r--   1 root root    53 Jul  5 16:07 .gitconfig
    drwxr-xr-x   7 root root  4096 Jul  5 18:10 jf_blog
    -rw-r--r--   1 root root 25548 Apr  7  2017 mysql57-community-release-el7-10.noarch.rpm
    -rw-------   1 root root  1545 Jul  9 14:18 .mysql_history
    drwxrwxr-x   7  500  500   111 Jun  5 15:04 node-v8.9.4-linux-x64
    drwxr-xr-x   4 root root    67 Jun  5 15:05 .npm
    drwxr-xr-x   2 root root    39 Jun 11 11:06 .oracle_jre_usage
    drwxr-----   3 root root    18 Jun  5 15:15 .pki
    -rw-------   1 root root  3040 Jul 11 10:48 .python_history
    drwx------   2 root root    76 Jul  5 16:05 .ssh
    -rw-r--r--.  1 root root   129 Dec 29  2013 .tcshrc
    -rw-------   1 root root  5313 Jul 10 14:02 .viminfo
    

    9、os.remove()

    删除文件,不能删除文件夹;

    >>> import os
    >>> print(os.listdir('/test'))
    ['123', 'hello.txt', '.file', 'qwe']
    >>> os.remove('/test/.file')
    >>> print(os.listdir('/test'))
    ['123', 'hello.txt', 'qwe']
    >>> os.remove('/test')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    IsADirectoryError: [Errno 21] Is a directory: '/test'
    

    10、os.stat()

    获取文件/目录信息,并可以获取到文件的大小;

    >>> import os
    >>> info = os.stat('/test')
    >>> print(info)
    os.stat_result(st_mode=16877, st_ino=102688292, st_dev=64769, st_nlink=4, st_uid=0, st_gid=0, st_size=42, st_atime=1562827140, st_mtime=1562827137, st_ctime=1562827137)
    >>> print(info.st_size)
    42
    

    11、os.sep

    输出操作系统特定的路径分隔符 ,如:windows 为‘\\’,Linux为‘/’;

    >>> import os
    >>> s = os.sep
    >>> print(s)
    /
    

    12、os.pathsep

    输出用于分割文件路径的字符串;

    >>> import os
    >>> print(os.pathsep)
    :
    

    13、os.system()

     运行shell命令,直接显示(相当于启动一个全新的shell,然后去执行那条命令,命令执行完成过后,shell直接退出);

    >>> import os
    >>> print(os.system('ls /test/'))    #调用系统命令
    123  hello.txt	qwe
    0
    
    
    [root@server-7 test]# ls
    123  hello.txt  qwe
    

    14、os.environ

    获取操作系统的环境变量;

    >>> import os
    >>> print(os.environ)
    environ({'XDG_SESSION_ID': '3393', 'HOSTNAME': 'server-7.dev', 'TERM': 'xterm', 'SHELL': '/bin/bash', 'HISTSIZE': '1000', 'SSH_CLIENT': '61.130.182.194 54987 22', 'SSH_TTY': '/dev/pts/1', 'HISTFILESIZE': '10000', 'JRE_HOME': '/usr/java/jdk1.8.0_171/jre', 'USER': 'root', 'JAVA_BIN': '/usr/java/jdk1.8.0_171/bin', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:', 'MAIL': '/var/spool/mail/root', 'PATH': '/usr/java/jdk1.8.0_171/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/java/jdk1.8.0_171/jre/bin:/usr/local/node/bin:/root/bin', 'PWD': '/home', 'JAVA_HOME': '/usr/java/jdk1.8.0_171', 'LANG': 'en_US.UTF-8', 'HISTCONTROL': 'ignoredups', 'SHLVL': '1', 'HOME': '/root', 'GREP_OPTIONS': '--color=auto', 'LOGNAME': 'root', 'CLASSPATH': '.:/usr/java/jdk1.8.0_171/lib/dt.jar:/usr/java/jdk1.8.0_171/lib/tools.jar', 'SSH_CONNECTION': '61.130.182.194 54987 10.23.230.201 22', 'LESSOPEN': '||/usr/bin/lesspipe.sh %s', 'XDG_RUNTIME_DIR': '/run/user/0', 'HISTTIMEFORMAT': '%Y-%m-%d %H:%M:%S ', '_': '/usr/local/python3/bin/python3.6', 'OLDPWD': '/root'})
    
    

    15、os.path.split(path)

    将path分割成目录和文件名二元组返回;

    >>> import os
    >>> print(os.path.split('/test/123/abc'))
    ('/test/123', 'abc')
    

    16、os.path.abspath(path)

    返回path规范化的绝对路径;

    >>> import os
    >>> print(os.path.abspath('abc'))
    /test/123/abc
    

    17、os.path.dirname(path)

    返回path的目录;

    >>> import os
    >>> print(os.path.dirname('/test/123/abc'))
    /test/123
    

    18、os.path.basename(path)

    返回path最后的文件名(一个绝对路径只返回最后的文件名);

    >>> import os
    >>> print(os.path.basename('abc'))
    abc
    >>> print(os.path.basename('/test/123/abc'))
    abc
    

    19、os.path.exists(path)

    判断路径是否存在,如果path存在,返回True;如果不存在,返回Flase;

    >>> import os
    >>> print(os.path.exists('/test/123/abc'))
    True

    20、os.path.isabs(path)

    判断是否是绝对路径,如果是,则返回True;

    >>> import os
    >>> print(os.path.isabs('abc'))
    False
    >>> print(os.path.isabs('/test/123/abc'))
    True
    

    21、os.path.isfile(path)

    判断是否是一个文件,如果是则返回True,否则返回False;

    >>> import os
    >>> print(os.path.isfile('abc'))
    True
    >>> print(os.path.isfile('/test/qwe'))
    False
    

    22、os.path.isdir(path)

    判断是否是一个存在的目录;

    >>> import os
    >>> print(os.path.isdir('/test/qwe'))
    True
    >>> print(os.path.isdir('/test/abc'))
    False
    

    23、os.path.join(path1,[path2],[path3])

    将路径和文件名分为一个列表中的两个元素,将它们拼起来,若其中有绝对路径,则之前的path将会被删除.;

    >>> import os
    >>> print(os.path.join('/test/','hello.txt'))
    /test/hello.txt
    >>> print(os.path.join('/test/123','hello.txt'))
    /test/123/hello.txt
    

    24、os.path.getatime(path)

    返回path所指向的文件或者目录的最后存取时间;

    >>> import os
    >>> print(os.path.getatime('/test/qwe'))
    1562838740.7342396

    25、os.path.getmtime(time)

    返回path所指向的文件或者目录的最后修改时间;

    >>> import os
    >>> print(os.path.getmtime('/test/qwe'))
    1562838533.447562
    

    26、os.popen('ls')

    相当于打开了一个临时的文件存储打开的目录(可以赋给变量,字符串的形式);

    >>> import os
    >>> a = os.popen('ls').read()
    >>> a
    'douban\nfull_stack\njf_blog\nmysql57-community-release-el7-10.noarch.rpm\nnode-v8.9.4-linux-x64\n'
    >>> print(a)
    douban
    full_stack
    jf_blog
    mysql57-community-release-el7-10.noarch.rpm
    node-v8.9.4-linux-x64
    
    
    
    [root@server-7 ~]# ls -l
    total 32
    drwxr-xr-x 3 root root    36 Jun 23 19:51 douban
    drwxr-xr-x 2 root root    22 Jul 10 14:02 full_stack
    drwxr-xr-x 7 root root  4096 Jul  5 18:10 jf_blog
    -rw-r--r-- 1 root root 25548 Apr  7  2017 mysql57-community-release-el7-10.noarch.rpm
    drwxrwxr-x 7  500  500   111 Jun  5 15:04 node-v8.9.4-linux-x64
    
    
    

     

     

     

     

     

     

    展开全文
  • Python的os模块简介

    万次阅读 多人点赞 2018-01-14 12:52:28
    一、什么是os模块 os模块提供了多数操作系统的功能接口函数。当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件、目录打交道,这时就离不了os模块,...

    一、什么是os模块

    os模块提供了多数操作系统的功能接口函数。当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件、目录打交道,这时就离不了os模块,本节内容将对os模块提供的函数进行详细的解读

    二、常用的os模块命令

    1. os.name——name顾名思义就是'名字',这里的名字是指操作系统的名字,主要作用是判断目前正在使用的平台,并给出操作系统的名字,如Windows 返回 'nt'; Linux 返回'posix'。注意该命令不带括号。

    2. os.getcwd()——全称应该是'get current work directory',获取当前工作的目录,如:返回结果为:'C:\\Program Files\\Python36'。注意该命令带括号,除了第一个命令不带括号之外,以下命令基本都带括号。

    3. os.listdir(path)——列出path目录下所有的文件和目录名。Path参数可以省略。例: 

     以列表的形式全部列举出来,其中没有区分目录和文件。

    4. os.remove(path)——删除path指定的文件,该参数不能省略。

    5. os.rmdir(path)——删除path指定的目录,该参数不能省略。

    6. os.mkdir(path)——创建path指定的目录,该参数不能省略。

      注意:这样只能建立一层,要想递归建立可用:os.makedirs()

    7. os.path.isfile(path)——判断指定对象是否为文件。是返回True,否则False

    8. os.path.isdir(path)——判断指定对象是否为目录。是True,否则False。例

     9. os.path.exists(path)——检验指定的对象是否存在。是True,否则False.例:

         

    10. os.path.split(path)——返回路径的目录和文件名,即将目录和文件名分开,而不是一个整体。此处只是把前后两部分分开而已。就是找最后一个'/'。

    11. os.system(cmd)——执行shell命令。返回值是脚本的退出状态码,0代表成功,1代表不成功,例:

         

    12. os.chdir(path)——'change dir'改变目录到指定目录

    13. os.path.getsize()——获得文件的大小,如果为目录,返回0

    14. os.path.abspath()——获得绝对路径。

    15. os.path.join(path, name)—连接目录和文件名,与os.path.split(path)相对。

    16.os.path.basename(path)——返回文件名

    17. os.path.dirname(path)——返回文件路径

    未完待续……

    展开全文
  • python os模块 以及 os.path模块 常用命令
  • os

    千次阅读 2018-12-24 21:55:58
    import os &gt;&gt;&gt; os.path.exists('d:/assist') True &gt;&gt;&gt; os.path.exists('d:/assist/getTeacherList.py') True &gt;&gt;&gt; os.path.isfile('d:/assist') F....
  • os

    2018-11-10 21:46:00
    /usr/bin/env pythonimport osprint(os.getcwd())print(os.chdir(".."))print(os.chdir('c:\\'))print(os.getcwd())print(os.chdir(r'F:\python\s14\dya5\time'))print(os.getcwd())print(os.curdir)print(os...
  • Python Module_os_操作系统

    千次阅读 2016-04-16 23:47:59
    os模块内建属性 osname 获取执行平台的类型 oslinesep 输出当前平台使用的行终止符 ossep 输出操作系统特定的路径分隔符 ospathsep 输出用于分割文件路径的字符串 Other os模块内建方法 文件或目录的路径操作方法 os...
  • python之os模块

    千次阅读 2019-06-13 13:53:15
    OS模块 import os 1.返回操作系统类型 :posix 是linux操作系统,nt 是windows操作系统 print(os.name) print('Linux' if os.name == 'posix' else 'Windows') posix Linux 2.操作系统的详细信息 info...
  • 1. 5年生存率: 五年生存率系指某种肿瘤经过各种综合治疗后,生存五年以上的比例。 意义 :用五年生存率表达有其一定的科学性。某种肿瘤经过治疗后,有一部分可能出现转移和复发,其中的一部分人可能因肿瘤进入晚期...
  • [638]python os.popen() 方法

    万次阅读 多人点赞 2019-07-18 19:08:11
    os.popen() 方法用于从一个命令打开一个管道。 在Unix,Windows中有效 语法 popen()方法语法格式如下: os.popen(command[, mode[, bufsize]]) 参数 command – 使用的命令。 mode – 模式权限可以是 ‘r’(默认) ...
  • python os模块

    千次阅读 2018-09-29 17:54:06
    本篇详细讲解python os模块的使用以及功能 import os #导入os模块 #print(os.name) #查看操作系统 nt—windows #posix—linux/unis/mac os #print(os.uname()) #打印电脑详细信息 #不支持windows #print(os.environ)...
  • Python os.rename和os.renames用法的区别1. 前言2. os.rename 和os.renames()2.1 官方的文档2.2 用法比较2.2.1 os.rename(oldpath,newpath)2.2.2 os.renames(oldpath, newpath)3. 小结4. 参考文献 1. 前言 今天看了...
  • python os模块 读写、创建 文件

    万次阅读 多人点赞 2019-02-20 14:59:31
    python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目录名:os.listdir() 函数用来...
  • Python os模块文件操作(一)

    千次阅读 2019-08-11 18:14:03
    Python os模块文件操作(一) 一、文件描述符 在使用代码对文件进行操作时,为了指定操作的文件,避免不了要使用文件描述符,所以我们先介绍什么是文件描述符。 操作系统为了高效管理已经被打开的文件,会给每个...
  • python os.system()和os.popen()

    万次阅读 多人点赞 2016-07-30 11:22:55
    python os.system()和os.popen()
  • python代码中,处理文件经常涉及到路径的操作,os.path提供了路径操作的多种方法。 通过 pydoc os.path 可以查看到 Help on module posixpath in os: NAME posixpath - Common operations on Posix pathnames. ...
  • python os模块简单应用示例

    千次阅读 2020-02-23 21:59:52
    本文实例讲述了python os模块简单应用。分享给大家供大家参考,具体如下: 举例中的目录形式如下所示: In [36]: pwd Out[36]: '/home/python/Desktop/code' In [37]: ls hello.py hello.txt test.py 文件夹01/ ...
  • python os.path()模块解析(最清晰的解释)

    千次阅读 多人点赞 2019-05-21 17:48:58
    下面的函数多为常用的,想要了解更多的方法可以去查看官方文档:http://docs.python.org/library/os.path.html 对应函数的实例,可以直接点击表格里的超链接。 方法 说明 os.path.abspath(path) 返回path...
  • Python os库的使用

    千次阅读 2019-05-06 21:18:13
    os库是Python标准库,提供通用的。基本的操作系统交互功能,包含几百个函数,常用路径操作、进程管理、环境参数等几类 路径操作 os.path子库以path为入口,用于操作和处理文件路径 import os.path 或 import os.path...
  • 调用的参数有空格,于是用“”把他圈起,但还是不对,于是打开控制台,亲自把下面程序里print(cmd)的结果复制粘贴进去,此时命令正确执行,头有点大,这是为什么,Python os.system()和cmd是不是有些地方不一样。...
  • Python os.rename() 重命名目录和文件

    万次阅读 2018-03-06 16:41:25
    os.rename() 方法用于重命名文件或目录,从 src 到 dst,如果dst是一个存在的目录, 将抛出OSError。 语法 rename()方法语法格式如下: os.rename(src, dst) 参数 src – 要修改的目录名 dst – 修改后的目录名 ...
  • python os模块 进程处理

    千次阅读 2012-03-26 09:51:41
    使用 os 执行操作系统命令 import os if os.name == "nt":  command = "dir" else:  command = "ls -l" os.system(command) 命令通过操作系统的标准 shell 执行, 并返回 shell 的退出状态. 需要注意的是在 ...
  • python os库及第三库安装脚本

    千次阅读 2018-09-10 11:13:02
    目录 一、os库基本介绍 ...os库是python标准库,包含几百个函数 常用路径操作、经常管理、环境参数等几类 路径操作:os.path子库,处理文件路径及信息 进程管理:启动系统中其他程序 环境参数:获得...
  • python os 文件文件夹操作

    千次阅读 2018-06-13 10:57:02
    python中对文件、文件夹操作时经常用到的os模块和shutil模块常用方法。1.得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()2.返回指定目录下的所有文件和目录名:os.listdir()3.函数用来删除一个文件:...
  • 转载的:Python osos.path模块详解

    千次阅读 2015-04-29 09:42:46
    获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname")  改变当前脚本工作目录;相当于shell下cd os.curdir  返回当前目录: ('.') os.pardir  获取当前目录的父目录字符串名:('..') os....
  • import os import shutil import time start_time = time.time() # 需要被复制的文件夹 old_path = r'D:\zjf_workspace\001-地标、利器、服饰\004文本\json1' new_path = r'D:\zjf_workspace\001-地标、利器、服饰...
  • python os之chmod方法简介

    万次阅读 2012-09-13 12:24:34
    os.chmod(path,mode) 这个方法应该很简单,只需要2个参数,一个是路径,一个是说明路径的模式,下面列出了这个用法中可以使用的一些常用的模式: stat.S_ISUID: Set user ID on execution. 不常用 ...
  • python os模块及open函数用法

    千次阅读 2019-02-17 14:34:59
    python脚本开发中经常会遇到系统和文件的操作,梳理下 一、os模块儿 1、获取当前所在路径及路径下的文件 os.getcwd():获取当前路径,返回字符串 os.listdir(path):列举路径下所有文件,返回列表类型(用来判断...
  • python os库的使用

    千次阅读 2018-05-30 22:44:30
    os.path子库以path为入口,用于操作和处理文件路 13个函数需要了解 os.path.abspath(path) 返回path在当前系统中的绝对路径 os.path.normpath(path) 归一化path的表示形式,统一用\分隔符 os.path.relpath(path)...

空空如也

1 2 3 4 5 ... 20
收藏数 1,607,068
精华内容 642,827
关键字:

os