023day--python os模块和re模块

一、os模块

os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
>>> os.getcwd()
‘C:\\Python36‘

os.chdir("dirname")  改变当前脚本工作目录;相当于shell下cd

os.curdir  返回当前目录: (‘.‘)

os.pardir  获取当前目录的父目录字符串名:(‘..‘)

os.makedirs(‘dirname1/dirname2‘)    可生成多层递归目录

os.removedirs(‘dirname1‘)    若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推

os.mkdir(‘dirname‘)    生成单级目录;相当于shell中mkdir dirname

os.rmdir(‘dirname‘)    删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname

os.listdir(‘dirname‘)    列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印

os.remove()  删除一个文件

os.rename("oldname","newname")  重命名文件/目录

os.stat(‘path/filename‘)  获取文件/目录信息

os.sep    输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"

os.linesep    输出当前平台使用的行终止符,win下为"\r\n",Linux下为"\n"

os.pathsep    输出用于分割文件路径的字符串 win下为;,Linux下为:

os.name    输出字符串指示当前使用平台。win->‘nt‘; Linux->‘posix‘

os.system("bash command")  运行shell命令,直接显示

os.environ  获取系统环境变量

os.path.abspath(path)  返回path规范化的绝对路径

os.path.split(path)  将path分割成目录和文件名二元组返回

os.path.dirname(path)  返回path的目录。其实就是os.path.split(path)的第一个元素

os.path.basename(path)  返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素

os.path.exists(path)  如果path存在,返回True;如果path不存在,返回False

os.path.isabs(path)  如果path是绝对路径,返回True

os.path.isfile(path)  如果path是一个存在的文件,返回True。否则返回False

os.path.isdir(path)  如果path是一个存在的目录,则返回True。否则返回False

os.path.join(path1[, path2[, ...]])  将多个路径组合后返回,第一个绝对路径之前的参数将被忽略

os.path.getatime(path)  返回path所指向的文件或者目录的最后存取时间

os.path.getmtime(path)  返回path所指向的文件或者目录的最后修改时间

os.path.getsize(path) 返回path的大小
os路径处理
#方式一:推荐使用
import os
#具体应用
import os,sys
possible_topdir = os.path.normpath(os.path.join(
    os.path.abspath(__file__),
    os.pardir, #上一级
    os.pardir,
    os.pardir
))
sys.path.insert(0,possible_topdir)

#方式二:不推荐使用
os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

二、sys模块

sys.argv           命令行参数List,第一个元素是程序本身路径
sys.exit(n)        退出程序,正常退出时exit(0)
sys.version        获取Python解释程序的版本信息
sys.maxint         最大的Int值
sys.path           返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform       返回操作系统平台名称

  进度条

import sys,time

for i in range(50):
    sys.stdout.write(‘%s\r‘ %(‘#‘*i))
    sys.stdout.flush()
    time.sleep(0.1)

‘‘‘
注意:在pycharm中执行无效,请到命令行中以脚本的方式执行
‘‘‘

三、json模块

  如果我们要在不同的编程语言之间传递对象,就必须把对象序列化为标准格式,比如XML,但更好的方法是序列化为JSON,因为JSON表示出来就是一个字符串,可以被所有语言读取,也可以方便地存储到磁盘或者通过网络传输。JSON不仅是标准格式,并且比XML更快,而且可以直接在Web页面中读取,非常方便。

  序列化:  

  我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flattening等等,都是一个意思。

  序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。

  反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling。

#----------------------------序列化
import json

dic={‘name‘:‘alvin‘,‘age‘:23,‘sex‘:‘male‘}
print(type(dic))#<class ‘dict‘>

j=json.dumps(dic)
print(type(j))#<class ‘str‘>

f=open(‘序列化对象‘,‘w‘)
f.write(j)  #-------------------等价于json.dump(dic,f)
f.close()
#-----------------------------反序列化

import json
f=open(‘序列化对象‘)
data=json.loads(f.read())#  等价于data=json.load(f)

  注意:

import json
#dct="{‘1‘:111}"#json 不认单引号
#dct=str({"1":111})#报错,因为生成的数据还是单引号:{‘one‘: 1}

dct=‘{"1":"111"}‘
print(json.loads(dct))

#conclusion:
#无论数据是怎样创建的,只要满足json格式,就可以json.loads出来,不一定非要dumps的数据才能loads

四、pickle模块

  Pickle的问题和所有其他编程语言特有的序列化问题一样,就是它只能用于Python,并且可能不同版本的Python彼此都不兼容,因此,只能用Pickle保存那些不重要的数据,不能成功地反序列化也没关系。

##----------------------------序列化
import pickle

dic={‘name‘:‘alvin‘,‘age‘:23,‘sex‘:‘male‘}

print(type(dic))#<class ‘dict‘>

j=pickle.dumps(dic)
print(type(j))#<class ‘bytes‘>

f=open(‘序列化对象_pickle‘,‘wb‘)#注意是w是写入str,wb是写入bytes,j是‘bytes‘
f.write(j)  #-------------------等价于pickle.dump(dic,f)

f.close()
#-------------------------反序列化
import pickle
f=open(‘序列化对象_pickle‘,‘rb‘)

data=pickle.loads(f.read())#  等价于data=pickle.load(f)

print(data[‘age‘])

五、xml模块

  xml是实现不同语言或程序之间进行数据交换的协议

<?xml version="1.0"?>
<data>
    <country name="Liechtenstein">
        <rank updated="yes">2</rank>
        <year>2008</year>
        <gdppc>141100</gdppc>
        <neighbor name="Austria" direction="E"/>
        <neighbor name="Switzerland" direction="W"/>
    </country>
    <country name="Singapore">
        <rank updated="yes">5</rank>
        <year>2011</year>
        <gdppc>59900</gdppc>
        <neighbor name="Malaysia" direction="N"/>
    </country>
    <country name="Panama">
        <rank updated="yes">69</rank>
        <year>2011</year>
        <gdppc>13600</gdppc>
        <neighbor name="Costa Rica" direction="W"/>
        <neighbor name="Colombia" direction="E"/>
    </country>
</data>

xml数据

xml格式

  增删查改xml:

import xml.etree.ElementTree as ET

tree = ET.parse("xmltest.xml")
root = tree.getroot()
print(root.tag)

#遍历xml文档
for child in root:
    print(child.tag, child.attrib)
    for i in child:
        print(i.tag,i.text)

#只遍历year 节点
for node in root.iter(‘year‘):
    print(node.tag,node.text)
#---------------------------------------

import xml.etree.ElementTree as ET

tree = ET.parse("xmltest.xml")
root = tree.getroot()

#修改
for node in root.iter(‘year‘):
    new_year = int(node.text) + 1
    node.text = str(new_year)
    node.set("updated","yes")

tree.write("xmltest.xml")

#删除node
for country in root.findall(‘country‘):
   rank = int(country.find(‘rank‘).text)
   if rank > 50:
     root.remove(country)

tree.write(‘output.xml‘)

  创建xml文档:

import xml.etree.ElementTree as ET

new_xml = ET.Element("namelist")
name = ET.SubElement(new_xml,"name",attrib={"enrolled":"yes"})
age = ET.SubElement(name,"age",attrib={"checked":"no"})
sex = ET.SubElement(name,"sex")
sex.text = ‘33‘
name2 = ET.SubElement(new_xml,"name",attrib={"enrolled":"no"})
age = ET.SubElement(name2,"age")
age.text = ‘19‘

et = ET.ElementTree(new_xml) #生成文档对象
et.write("test.xml", encoding="utf-8",xml_declaration=True)

ET.dump(new_xml) #打印生成的格式

学习资料来源:

时间: 2024-12-15 22:53:33

023day--python os模块和re模块的相关文章

python下通过os模块和shutil模块进行文件处理方式

python下通过os模块和shutil模块进行文件处理方式 得到当前工作目录路径:os.getcwd() 获取指定目录下的所有文件和目录名:os.listdir(dir) 删除文件:os.remove(file) 删除多个目录:os.removedirs(r"/home") 检测路径是否为文件:os.path.isfile(path) 检测路径是否为目录:os.path.isdir(path) 判断是否为绝对路径:os.path.isabs(path) 检测路径是否存在:os.pat

Python之路【第五篇】:Python基础(20)——模块、序列化、os模块

常用模块 time模块 time.time() import time import datetime print(time.time()) # 返回当前时间的时间戳 time.ctime() print(time.ctime()) # 将时间戳转化为字符串格式Wed Feb 17 11:41:27 2016,默认是当前系统时间的时间戳 print(time.ctime(time.time()-3600)) # ctime可以接收一个时间戳作为参数,返回该时间戳的字符串形式 Wed Feb 17

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

python中对文件、文件夹的操作需要涉及到os模块和shutil模块。

创建文件:1) os.mknod("test.txt") 创建空文件2) open("test.txt",w) 直接打开一个文件,如果文件不存在则创建文件 创建目录:os.mkdir("file") 创建目录 创建多层新目录:def mkdirs(path): # 去除首位空格 path=path.strip() # 去除尾部 \ 符号 path=path.rstrip("\\") # 判断路径是否存在 # 存在 True #

python os.path模块常用方法详解

python os.path模块常用方法详解 1.   os.path.abspath(path)   返回path规范化的绝对路径. >>> import os    >>> os.path.abspath('pjc.txt')     '/home/pjc/pjc.txt' >>> os.path.abspath('c:\\test.csv')         #Windows主机指定完美的路径    'c:\\test.csv' 2.os.pat

python os模块学习

一.os模块概述 Python os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.(一语中的) 二.常用方法 1.os.name 输出字符串指示正在使用的平台.如果是window 则用'nt'表示,对于Linux/Unix用户,它是'posix'. 2.os.getcwd() 函数得到当前工作目录,即当前Python脚本工作的目录路径. 3.os.listdir() 返回指定目录下的所有文件和目录名. >>> os.listdir(os.getc

Python基础(11)_python模块之time模块、rando模块、hashlib、os模块

一.模块 1.什么是模块:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀 模块的本质:模块的本质是一个py文件 2.模块分为三类:1)内置模块:2)第三方模块:3)自定义模块 3.使用模块的目的: 退出python解释器然后重新进入,那么你之前定义的函数或者变量都将丢失,因此我们通常将程序写到文件中以便永久保存下来,需要时就通过python test.py方式去执行,此时test.py被称为脚本script. 随着程序的发展,功能越来越多,为了方便管理,我

python os、sys模块、时间模块、正则表达式

python os.sys模块 OS模块是Python标准库中的一个用于访问操作系统功能的模块,OS模块提供了一种可移植的方法使用操作系统的功能.使用OS模块中提供的接口,可以实现跨平台访问.但是在OS模块中的接口并不是所有平台都通用,有些接口的实现是依靠特定平台下的接口的.在OS模块中提供了一系列访问操作系统功能的接口,便于编写跨平台的应用. OS模块常用命令 os.getcwd()--得到当前工作的目录 os.chmod("usr/local",7) --给文件/目录加权限 os.

python os.path 模块

os.path模块用法: 1, os.path.basename() >>> os.path.basename('/share/Public/cmiao')'cmiao' basename()函数并不会去判断这个路径是否存在,它只是简单的将最后一个/后面的作为文件名返回.至于是不是它不管>>> os.path.basename('/share/Public/cmiao/')'' 由于最后一个/没有东西,他就认为这个目录路径,没有文件名.所以返回了空字符串 2, os.p

Python os模块 常用功能小结

Python os模块 常用功能小结 os 模块提供了一个统一的操作系统接口函数, 这些接口函数通常是平台指定的,os 模块能在不同操作系统平台如 nt 或 posix中的特定函数间自动切换,从而能实现跨平台操作 1, os.name: 字符串指示你正在使用的平台.比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'. 2, os.stat(file):文件属性操作: 3, os.getcwd():得到当前工作目录,即当前Python脚本工作的目录路径: 4,