开启辅助访问 切换到窄版

打印 上一主题 下一主题

python|os模块例子,用法大全

[复制链接]
作者:q再一次p 
版块:
嵌入式操作系统 linux 发布时间:2020-3-22 20:38:18
9230
楼主
跳转到指定楼层
| 只看该作者 回帖奖励 |倒序浏览 |阅读模式
python—os模块例子和用法大全


#同样,运行后重新打开文件查看变化
import os
with open ('test.txt','r') as f:
lines = f.readlines
with open('test_new.txt','w') as new: # 新建一个文档
for line in lines:
if line not in ['0\n','1\n']:
new.write(line)
# 可以先运行一次代码,然后,再将下面代码的注释取消,再运行一次。
os.replace('test_new.txt', 'test.txt') # 语法:os.replace(file1,file2),将file1重命名为file2,将其替代。
# 请你根据上面的方法,将之前的代码改为用模块 os 实现(可选文档poem2)。
# 在改代码之前,可以先将上面的代码注释,然后取消下面代码的注释。
list_test = ['一弦一柱思华年。\n','只是当时已惘然。\n']
with open ('poem2.txt','r',encoding='utf-8') as f:
lines = f.readlines
with open('new_poem.txt','w',encoding='utf-8') as new:
for line in lines:
if line in list_test:
new.write('。\n')

else:
new.write(line)
os.replace('new_poem.txt','poem2.txt')
'''
os.getcwd # 返回当前工作目录
os.listdir(path) # 返回path指定的文件夹包含的文件或文件夹的名字的列表
os.mkdir(path) # 创建文件夹
os.path.abspath(path) # 返回绝对路径
os.path.basename(path) # 返回文件名
os.path.isfile(path) # 判断路径是否为文件
os.path.isdir(path) # 判断路径是否为目录
'''




一、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’





import os
import shutil
'''
OS模块简单的来说它是一个Python的系统编程的操作模块,可以处理文件和目录这些我们日常手动需要做的操作。
'''
# 常用的os模块函数
#os.sep
'''
os.sep 可以取代操作系统特定的路径分割符。
Windows系统通过是“\”,Linux类系统如Ubuntu的分隔符是“/”,而苹果Mac OS系统中是“:”。
使用os.sep代替系统分隔符可以实现跨平台,不用担心不能移植
Linux下一个路径, '/usr/share/python' 那么上面的 os.sep 就是 ‘/’
Windows下一个路径, '\usr\share\python' 那么上面的 os.sep 就是 '\'。
上面那个路经写成 os.sep+'usr'+os.sep+'share'+os.sep+'python', 系统就会自动替换成当前系统的路径分割符,不用人为修改
'''
strPath = os.sep + 'usr' + os.sep + 'share' + os.sep + 'python'
print(strPath)
#/usr/share/python
#os.linesep
'''
os.linesep 字符串给出当前平台使用的行终止符
#Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'。
'''
str1 = 'hello' + os.linesep + 'world' + os.linesep
print(str1)
#hello
#world
#
#os.name
'''
os.name 输出字符串指示正在使用的平台。如果是window 则用'nt'表示,对于Linux/Unix用户,它是'posix'。
'''
print(os.name)
#posix
#os.system
'''
os.system 运行shell命令。
'''
#os.system('cmd') #启动dos
#os.getcwd
'''
os.getcwd 函数得到当前工作目录,即当前Python脚本工作的目录路径。
'''
print(os.getcwd)
#/Users/xxx/Documents/Python
#os.chdir(path)
'''
os.chdir(path) 改变当前路径到path路径中,即创建生成文件,操作文件的目录。
'''
#os.chdir(r'/Users/xxx/Documents') #设为目录/Users/xxx/Documents
#os.listdir(path)
'''
os.listdir 返回指定目录下的所有文件和目录名。
path: 路径名
'''
print(os.listdir(os.getcwd))
#['.DS_Store', '.idea', 'class_test.py', 'fileDir', 'os_test.py', 'os_test.py', 'hello.txt', 'str_test.py']
#os.mkdir(path, mode=0777)
'''
os.mkdir(path) 创建一个文件夹
path: 路径
mode: 操作权限
产生异常的可能原因:
(1) 路径不存在
(2) 同名文件夹已存在时
(3) 驱动器不存在
(4) 磁盘已满
(5) 磁盘是只读的或没有写权限
'''
os.mkdir('fileDir')
#os.rmdir(path)
'''
os.rmdir(path) 删除一个文件夹
path: 路径
产生异常的可能原因:
(1) path 不存在
(2) path 子目录中有文件或下级子目录
(3) 没有操作权限或只读
'''
os.rmdir('fileDir')
#os.makedirs(path, mode=0777)
'''
os.makedirs(path) 创建多层文件夹
path: 路径
mode: 操作权限
产生异常的可能原因:
(1) 磁盘路径不存在, 如 K:\dir1\dir2 K盘不存在时
(2) 同名文件夹已存在时
(3) 驱动器不存在
(4) 磁盘已满
(5) 磁盘是只读的或没有写权限
'''
os.makedirs('fileDir1/fileDir2/fileDir3')
#os.rmtree(path)
'''
os.rmtree(path) 删除一个文件夹以及内部的文件夹及文件
path: 路径
注意要引入: import shutil
产生异常的可能原因:
(1) path 不存在
(2) path 子目录中有文件或下级子目录
(3) 没有操作权限或只读
'''
shutil.rmtree('fileDir1')
#创建文件
'''
直接以'w'写的方式打开关闭文件即可
'''
filename = 'hello.txt'
f = open(filename, 'w')
f.close
#os.remove(filename)
'''
os.remove(filename) 删除一个文件,非文件夹
filename: 文件名(带后缀名)
产生异常的可能原因:
(1) path 不存在(不管是文件还是文件夹)
(2) 驱动器不存在
(3) 磁盘已满
(4)磁盘是只读的或没有写权限
'''
os.remove('hello.txt')
# 常用的os模块函数 之 path模块
#os.path.basename(path)
'''
os.path.basename(path) 返回传入路径的最后一个的文件名
'''
print(os.getcwd)
#/Users/xxx/Documents/Python
print(os.path.basename(os.getcwd))
#Python
#os.path.dirname(path)
'''
os.path.dirname(path) 返回文件夹所在路径
'''
print(os.path.dirname(os.getcwd))
#/Users/xxx/Documents
#os.path.abspath(path)
'''
os.path.abspath(path) 返回绝对路径
'''
print(os.path.abspath('os_test.py'))
#/Users/xxx/Documents/Python/os_test.py
#os.path.isabs(path)
'''
os.path.isabs(path) 是否为绝对路径
'''
print(os.path.isabs('os_test.py'))
#False
print(os.path.isabs('../Python/os_test.py'))
#False
print(os.path.isabs(os.getcwd+'os_test.py'))
#True
#os.path.commonprefix(path)
'''
os.path.commonprefix(path) 返回list(多个路径)中,所有path共有的最长的路径
'''
print(os.path.commonprefix(['/Users/xxx/Documents/Python/', \
'/Users/xxx/', \
'/Users/xxx/Documents']))
#/Users/xxx/
#os.path.exists(path)
'''
os.path.exists(path) 该路径是否存在未被破坏, 是:返回True, 否:返回False
'''
print(os.path.exists(os.getcwd))
#True
print(os.path.exists(os.getcwd+'hhhh'+os.sep))
#False
#os.path.getsize(path)
'''
os.path.getsize(path) 返回文件大小,如果文件不存在就返回错误
'''
print(os.path.getsize('os_test.py'))
#5503
print(os.path.getsize(os.getcwd))
#442
#print(os.path.getsize(os.getcwd+'hhhh'+os.sep))
#OSError: [Errno 2] No such file or directory:
#os.path.isfile(path)
'''
os.path.isfile(path) 是否为文件, 找不到也返回False
'''
print(os.path.isfile(os.getcwd))
#False
print(os.path.isfile('os_test.py'))
#True
#os.path.isdir(path)
'''
os.path.isdir(path) 是否为文件夹, 找不到也返回False
'''
print(os.path.isdir(os.getcwd))
#True
print(os.path.isdir('os_test.py'))
#False
#os.path.join(path1[, path2[, ...]])
'''
os.path.join(path1[, path2[, ...]]) 把文件和路径合成一个名, 用来拼接全名
'''
print(os.path.join(os.getcwd, 'joindir','os_test.py'))
#/Users/xxx/Documents/Python/joindir/os_test.py
#os.path.realpath(path)
'''
os.path.realpath(path) 返回真是路径
'''
print(os.path.realpath('os_test.py'))
#/Users/xxx/Documents/Python/os_test.py
#os.path.samefile(path1, path2)
'''
os.path.samefile(path) 判断两个文件或者路径是否相同
'''
print(os.path.samefile('os_test.py', 'tuple_test.py'))
#False
print(os.path.samefile('os_test.py', 'os_test.py'))
#True
print(os.path.samefile(os.getcwd, os.path.dirname(os.getcwd)))
#False
print(os.path.samefile(os.getcwd, os.getcwd))
#True
#os.path.split(path)
'''
os.path.split(path) 把路径分割成dirname和basename,返回一个元组
'''
print(os.path.split(os.path.abspath('os_test.py')))
#('/Users/xxx/Documents/Python', 'os_test.py')
#os.path.splitext(path)
'''
os.path.splitext(path) 分割文件扩展名,返回路径名和文件扩展名的元组
'''
print(os.path.splitext(os.path.abspath('os_test.py')))
#('/Users/xxx/Documents/Python/os_test', '.py')
print(os.path.splitext(os.getcwd))
#('/Users/xxx/Documents/Python', '')





Python os.path模块常见函数用法
os.path 模块下提供了一些操作目录的方法,这些函数可以操作系统的目录本身。该模块提供了 exists 函数判断该目录是否存在;也提供了 getctime、getmtime、getatime 函数来获取该目录的创建时间、最后一次修改时间、最后一次访问时间;还提供了 getsize 函数来获取指定文件的大小。
下面程序示范了 os.path 模块下的操作目录的常见函数的功能和用法:

  • import os
  • import time
  • # 获取绝对路径
  • print(os.path.abspath("abc.txt")) # G:\publish\codes\12\12.2\abc.txt
  • # 获取共同前缀
  • print(os.path.commonprefix(['/usr/lib', '/usr/local/lib'])) # /usr/l
  • # 获取共同路径
  • print(os.path.commonpath(['/usr/lib', '/usr/local/lib'])) # \usr
  • # 获取目录
  • print(os.path.dirname('abc/xyz/README.txt')) #abc/xyz
  • # 判断指定目录是否存在
  • print(os.path.exists('abc/xyz/README.txt')) # False
  • # 获取最近一次访问时间
  • print(time.ctime(os.path.getatime('os.path_test.py')))
  • # 获取最后一次修改时间
  • print(time.ctime(os.path.getmtime('os.path_test.py')))
  • # 获取创建时间
  • print(time.ctime(os.path.getctime('os.path_test.py')))
  • # 获取文件大小
  • print(os.path.getsize('os.path_test.py'))
  • # 判断是否为文件
  • print(os.path.isfile('os.path_test.py')) # True
  • # 判断是否为目录
  • print(os.path.isdir('os.path_test.py')) # False
  • # 判断是否为同一个文件
  • print(os.path.samefile('os.path_test.py', './os.path_test.py')) # True
运行上面程序,大部分函数的输出结果都通过注释给出了,程序中 getatime、getmtime、getctime 三个函数分别获取了文件的最后一次访问时间、最后一次修改时间和创建时间。读者可通过运行该程序来理解 os.path 模块下这些函数的功能。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表