二. python的os模块

一 .os模块

os 模块包括了普遍操作系统的功能

1.name获取操作系统类型

import os
print(os.name)    # nt                  代表是window模块

2.environ 获取操作系统中的环境变量

import os
# 获取操作系统中的环境变量
print(os.environ)

3.get获取指定环境变量

print(os.environ.get("PROGRAMFILES"))
# C:\Program Files

4.curdir获取当前目录

import os
print(os.curdir)
# .

5.getcwd()获取当前工作目录

import os
print(os.getcwd())
# D:\老男孩教育

6.listdir()返回指定目录下的所有文件

import os
print(os.listdir(r"D:\01learnpython\py2\1"))

[‘01.txt‘, ‘02.txt‘, ‘03.txt‘, ‘04.txt‘, ‘05.txt‘, ‘HHH‘]
print(os.listdir())
[‘.idea‘, ‘01day‘, ‘02day‘, ‘03day‘, ‘04day‘, ‘05day‘, ‘cc.txt‘, ‘test.py‘, ‘作业解析‘, ‘前面‘]

7.mkdir  rmdir mkdir

import  os

# 创建文件目录
os.mkdir("Study")

# 删除目录
os.rmdir("Study")

# 创建绝对目录
os.mkdir(r"E:\Studypython\py2\2\HHH")
# 重命名os.rename("Study","HHH")

# 删除普通文件os.remove("HHH\1.txt")

8.stat获取文件属性

import os
print(os.stat("01day"))
9.abspath查看当前的绝对路径
 print(os.path.abspath(".bbbb"))
# D:\老男孩教育\.bbbb
#
print(os.path)
# <module ‘ntpath‘ from ‘D:\\python\\lib\\ntpath.py‘>
 10.join拼接路径  split 拆分路径
# 拼接路径
# 注意参数二开始不能有斜杠
p1=r"E:\Studypython\py2\HHH"
p2="name11"
print(os.path.join(p1,p2)) #E:\Studypython\py2\HHH\name11
# 拆分路径
path2=r"E:\Studypython\py2\HHH"
print(os.path.split(path2)) #(‘E:\\Studypython\\py2‘, ‘HHH‘)拆分就变成元组了     
11.splitext获取扩展名
import os

path3="D:\01learnpython\py2\1\01.txt"
print(os.path.splitext(path3))

#(‘D:\x01learnpython\\py2\x01\x01‘, ‘.txt‘)
12.isdir  判断是否为目录  isfile 是否为文件
import os

path3="D:\01learnpython\py2\1\01.txt"
# 判断是否为目录
print(os.path.isdir(path3)) #False

# 判断文件是否存在
print(os.path.isfile("HHH")) #False

 
 13.exists判断目录是否存在
path6= r"F:\dbnodeloginmd5"
print(os.path.exists(path6))  # True
 14.getsize()获取文件大小
# 获取文件大小
path9= r"F:\dbnodeloginmd5\login.js"
print(os.path.getsize(path9))   #1717字符

15.dirname获取文件目录

# dirname获取文件目录
path3="D:\01learnpython\py2\1\01.txt"
print(os.path.dirname(path3))
# D:learnpython
# dirname获取文件目录
path10= r"F:\dbnodeloginmd5\login.js"
print(os.path.dirname(path10))   # F:\dbnodeloginmd5

# 获取文件名
print(os.path.basename(path10)) #login.js

返回指定路径下的文件和文件夹列表
os.listdir(path)
os案例
# 队列就是先进去的 就先走           相当于排队
#
#
import collections
import os

# 队列是先进先出

def aa(path):
   # 创建一个队列
   queue=collections.deque()
   # 进队
   queue.append(path)
   while len(queue)!=0:
      # 出队取数据
      dirPath=queue.popleft()
      # 找出所有文件
      filesList=os.listdir(dirPath)
      for fileName in filesList:

            # 绝对路径
         fileAbsPath=os.path.join(dirPath,fileName)
            #print(fileAbsPath)
                # E:\Studypython\py2\dir\.project
                # E:\Studypython\py2\dir\2
                # E:\Studypython\py2\dir\app.js
                # E:\Studypython\py2\dir\controller
                # E:\Studypython\py2\dir\models
                # E:\Studypython\py2\dir\node_modules
                # E:\Studypython\py2\dir\package.json
                # E:\Studypython\py2\dir\public
                # E:\Studypython\py2\dir\uploads
                # E:\Studypython\py2\dir\views
          # 判断是否为目录
         if os.path.isdir(fileAbsPath):
            print("目录-----"+fileName)
              #目录-----controller
              # 目录-----models
              # 目录-----node_modules
            queue.append(fileAbsPath)
         else:
             print("普通文件-----"+fileName)

   #           普通文件-----index.js
            # 普通文件-----callsite-tostring.js
            # 普通文件-----event-listener-count.js
            # 普通文件-----index.js
aa(r"E:\Studypython\py2\dir")


# 深度遍历  利用 进栈 和 出栈  的知识

import os

def getAllDir(path):
# 得到目录下的所有目录
   filesList=os.listdir(path)
    # 处理每一个文件、
   for fileName in filesList:

       # 判断路径  是否觉对路径
      fileAbsPath=os.path.join(path,fileName)

      if os.path.isdir(fileAbsPath):

          print("目录"+fileName)

          getAllDir(fileAbsPath)
      else:
            print("普通文件"+fileName)

getAllDir(r"E:\Studypython\py2\dir")

# 深度遍历  利用 进栈 和 出栈  的知识

import os

def getAllDirDE(path):

    stack=[]
    stack.append(path)
   # print(stack)                                    # [‘E:\\Studypython\\py2\\dir‘]
   处理栈 当前栈为空的时候结束循环
    while len(stack)!=0:

         从栈里取出数据
          dirPath=stack.pop()
         # print(dirPath)                            # E:\Studypython\py2\dir
          目录下所有文件
          filesList=os.listdir(dirPath)
          #print(filesList)                          # [‘.project‘, ‘2‘, ‘app.js‘, ‘controller‘, ‘models‘, ‘node_modules‘, ‘package.json‘, ‘public‘, ‘uploads‘, ‘views‘]

          处理每一个文件 如果是普通文件则打印 如果是目录则将改目录的地址压栈
          for fileName in filesList:

             # print(fileName)                        # .project 2 app.js controller models node_modules package.json public uploads views

              fileAbsPath=os.path.join(dirPath,fileName)

              #print(fileAbsPath)
                #E:\Studypython\py2\dir\.project
                # E:\Studypython\py2\dir\2
                # E:\Studypython\py2\dir\app.js
                # E:\Studypython\py2\dir\controller
                # E:\Studypython\py2\dir\models
                # E:\Studypython\py2\dir\node_modules
                # E:\Studypython\py2\dir\package.json
                # E:\Studypython\py2\dir\public
                # E:\Studypython\py2\dir\uploads
                # E:\Studypython\py2\dir\views
                #
              if os.path.isdir(fileAbsPath):

                  是目录就压栈
                print("目录---"+fileName)
                    # 目录---2
                    # 目录---controller
                    # 目录---models
                    # 目录---node_modules
                    # 目录---public
                    # 目录---uploads
                    # 目录---views
                stack.append(fileAbsPath)
                 #print(stack)
                    #[‘E:\\Studypython\\py2\\dir\\2‘]
                    # [‘E:\\Studypython\\py2\\dir\\2‘, ‘E:\\Studypython\\py2\\dir\\controller‘]
                    # [‘E:\\Studypython\\py2\\dir\\2‘, ‘E:\\Studypython\\py2\\dir\\controller‘, ‘E:\\Studypython\\py2\\dir\\models‘]
                    # [‘E:\\Studypython\\py2\\dir\\2‘, ‘E:\\Studypython\\py2\\dir\\controller‘, ‘E:\\Studypython\\py2\\dir\\models‘, ‘E:\\Studypython\\py2\\dir\\node_modules‘]
                    # [‘E:\\Studypython\\py2\\dir\\2‘, ‘E:\\Studypython\\py2\\dir\\controller‘, ‘E:\\Studypython\\py2\\dir\\models‘, ‘E:\\Studypython\\py2\\dir\\node_modules‘, ‘E:\\Studypython\\py2\\dir\\public‘]

              else:

                     打印普通文件
                  print("普通文件--"+fileName)

      #                   普通文件--.project
                        # 普通文件--app.js
                        # 普通文件--package.json
                        # 普通文件--album.ejs
                        # 普通文件--err.ejs
                        # 普通文件--index.ejs
                        # 普通文件--1 - 副本.jpg
                        # 普通文件--1.jpg
                        # 普通文件--2 - 副本.jpg
                        # 普通文件--2.jpg
                        # 普通文件--3 - 副本.jpg
                        # 普通文件--3.jpg
                        # 普通文件--4 - 副本.jpg
                        # 普通文件--4.jpg
                        # 普通文件--5 - 副本.jpg
                        # 普通文件--5.jpg
                        # 普通文件--bootstrap.js
                        # 普通文件--bootstrap.min.js
                        # 普通文件--jquery-1.12.4.js
                        # 普通文件--npm.js
                        # 普通文件--1.jpg
                        # 普通文件--2.jpg
                        # 普通文件--4.png

getAllDirDE(r"E:\Studypython\py2\dir")

os 栈


二 .sys模块 
sys模块 是与python解释器交互模块
import sys

# sys模块 是与python解释器交互模块
print(sys.platform)   # 返回操作系统

print(sys.argv)    #  返回第一个元素程序本身路径

print(sys.version)     #  返回python版本

print(sys.path)    #  返回环境变量的路径
#
# win32
# [‘D:/老男孩教育/03day/sys模块/01.py‘]
# 3.6.3 (v3.6.3:2c5fed8, Oct  3 2017, 18:11:49) [MSC v.1900 64 bit (AMD64)]

# [‘D:\\老男孩教育\\03day\\sys模块‘, ‘D:\\老男孩教育‘, ‘D:\\python\\python36.zip‘, ‘D:\\python\\DLLs‘,
#  ‘D:\\python\\lib‘, ‘D:\\python‘, ‘D:\\python\\lib\\site-packages‘,
#  ‘D:\\python\\lib\\site-packages\\tornado-5.1.1-py3.6-win-amd64.egg‘]
import sys

# sys模块 是与python解释器交互模块
print(sys.platform)   # 返回操作系统

print(sys.argv)    #  返回第一个元素程序本身路径

print(sys.version)     #  返回python版本

print(sys.path)    #  返回环境变量的路径
#
# win32
# [‘D:/老男孩教育/03day/sys模块/01.py‘]
# 3.6.3 (v3.6.3:2c5fed8, Oct  3 2017, 18:11:49) [MSC v.1900 64 bit (AMD64)]

# [‘D:\\老男孩教育\\03day\\sys模块‘, ‘D:\\老男孩教育‘, ‘D:\\python\\python36.zip‘, ‘D:\\python\\DLLs‘,
#  ‘D:\\python\\lib‘, ‘D:\\python‘, ‘D:\\python\\lib\\site-packages‘,
#  ‘D:\\python\\lib\\site-packages\\tornado-5.1.1-py3.6-win-amd64.egg‘]
 
 


原文地址:https://www.cnblogs.com/Sup-to/p/10854305.html

时间: 2024-11-07 11:35:10

二. python的os模块的相关文章

python的os模块总结

python的os模块总结 目录 常用方法和属性总结 文件操作 目录操作 常用方法和属性总结 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd os.curdir 返回当前目录: ('.') os.pardir 获取当前目录的父目录字符串名:('..') os.makedirs('dirname1/dirname2') 可生成多层递归目录 os.mkdir("d

python之OS模块(对文件or目录操作)

OS模块 os,语义为操作系统,包含普遍的操作系统功能,与具体的平台无关.python编程时,处理文件和目录这些操作,就比如说:显示当前目录下所有文件/删除某个文件/获取文件大小-- os模块不受平台限制,也就是说:当我们要在linux中显示当前命令时就要用到pwd命令,而Windows中cmd命令行下就要用到这个,例如:这时候我们使用python中os模块的os.path.abspath(name)功能,甭管是linux或者Windows都可以获取当前的绝对路径. 常见函数列表 os.name

python的os模块批量获取目标路径下的文件名

目前在做一个项目开发与变更专项稽核,但是所抽取的目标项目,样本所附电子版文件上千个,需要判断文档完整性,就需要所有文档名清单. python的os模块好像是对这块比较擅长,就去翻了下文档,试着写了,效果还可以. 1 import os 2 3 #通过文件获取目标路径 4 file2=open(r'd:\dirname.txt','r') 5 a=file2.readlines() 6 file2.close() 7 8 #遍历目标路径下文件路径及名字,并写入新文件abc.txt 9 file1=

python中os模块中文帮助

python中os模块中文帮助 python中os模块中文帮助文档文章分类:Python编程 python中os模块中文帮助文档 翻译者:butalnd 翻译于2010.1.7——2010.1.8,个人博客:http://butlandblog.appspot.com/ 注此模块中关于unix中的函数大部分都被略过,翻译主要针对WINDOWS,翻译速度很快,其中很多不足之处请多多包涵. 这个模块提供了一个轻便的方法使用要依赖操作系统的功能. 如何你只是想读或写文件,请使用open() ,如果你想

Python的os模块的一些常见文件和目录操作

转自:极客学院 Python 的 os 模块封装了常见的文件和目录操作,本文只列出部分常用的方法,更多的方法可以查看官方文档. 下面是部分常见的用法: 方法 说明  os.mkdir  创建目录 os.rmdir  删除目录  os.rename  重命名 os.remove 删除文件  os.getcwd 获取当前工作路径 os.walk 遍历目录 os.path.join 连接目录与文件名 os.path.split 分割文件名与目录 os.path.abspath 获取绝对路径 os.pa

python中os模块在windows下的使用

今天学习了一下Python的os模块,主要是针对文件夹和文件路径的一系列操作. 与Python内置函数相比这里这里的函数功能更多样化,功能也更强大.但是学习过程中我发现很多函数都是只适用于unix系统,可能因为它是开源系统,涉及权限的api都是开放的缘故吧.但也正是如此,当我们再Windows上学习Python时,本来这个板块就难以理解,还具有不可操作性.学起来感觉很受打击. 所以这里把Windows上能用,且适用的函数记录下来,以便于以后复习: 1,os.lseek(fd,pos,how) 方

Python的OS模块批量修改文件名

大量文件名需要进行有序整理时,可以使用Python的OS模块进行文件批量重命名,脚本如下: import os path = 'D:\PycharmProjects\download_photos\down_photos' #文件路径 count = 1 filelist = os.listdir(path) #该文件夹下所有文件 def rename(): global count for files in filelist: #遍历文件 Olddir = os.path.join(path,

【python】os模块

os模块 转自http://www.cnblogs.com/zhaof/p/5809246.html os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd os.curdir 返回当前目录: ('.') os.pardir 获取当前目录的父目录字符串名:('..') os.makedirs('dirname1/dirname2') 可生成多层递归目录 os.removedir

python的os模块fnmatch模块介绍

一.先介绍一下os模块 import os print(os.getcwd()) # E:\python\test\python_models # 获取当前的目录 print(os.listdir(".")) # ['oop.py', 'python_argparse.py', 'python_click.py', 'python_os.py', 'python_re.py', 'python_requests.py', 'xx.py', '__init__.py'] # 列出指定目录