文件操作修改模块

今天主要学习os模块、pathlib模块、sys模块、shutil模块、copy模块的操作~

1.使用OS模块进行path路径操作

  • 操作的语法为 os.path.方法名()

import os # 首先导入os模块

  • abspath()方法 :获取当前文件的全路径,所带参数为 file

file_path = os.path.abspath(__file__) # 获取当前文件的全路径
print(file_path)

  • dirname()方法 : 获取当前文件的目录全路径,所带参数为文件全路径;

dir_path = os.path.dirname(file_path) # 获取当前文件的目录全路径
print(dir_path)

  • join()方法 :使用拼接方法来拼接路径,第一个参数为文件目录路径,第二个参数为需要拼接的路径;

img_path = os.path.join(dir_path, 'img') # 拼接路径
print(img_path)

  • basename()方法 :获取文件名,所带参数为文件全路径;

file_name = os.path.basename(file_path)  # 获取文件名
print(file_name)

  • split()方法 :切割方法, 获取目录和文件名,所得结果为一个元组;

tuple_path = os.path.split(file_path)  # 获取目录和文件名
print(tuple_path)

2.pathlib模块

  • 使用pathlib模块需要导入Path类,将Path类实例化为一个path对象,或者直接使用Path类初始化新的路径;

from pathlib import Path
path = Path()
print(path)  # 显示当前目录
path1 = Path('var', 'log', 'message') # 路径初始化
print(path1)
path2 = Path('/var', 'log', 'message') # 路径初始化
print(path2)

  • joinpath()方法 :拼接路径;

path3 = path2.joinpath('message.log') # 路径拼接 /var/log/message/message.log
print(path3)

  • parent :返回目录路径;

path4 = path3.parent  # 返回目录路径
print(path4)

  • parents :返回一个路径对象,可通过for循环遍历获取;

path5 = path3.parents  # 返回一个对象
print(path5)

  • name :获取文件名;

for i in path5:
    print(i)
print(path3.name)  # message.log

  • suffix :获取扩展名;

print(path3.suffix) # 扩展名

  • suffixes :获取扩展名列表,列表类型;

print(path3.suffixes) # 扩展名列表

  • cwd()方法 :获取文件当前名;

print(path3.cwd()) # 当前目录

  • glob()方法 :通配符方法,如’*.log’,表示找到所有以.log结尾的文件;

objs = path3.parent.parent.glob('*.log')  # 匹配目录下面以.log结尾的文件
for i in objs:
    print(i)

3.sys模块

  • 使用之前需要导入sys模块;

import sys

  • sys.argv :实现从程序外部向程序传递参数;

print(sys.argv[0])  # 当前文件路径
print(sys.argv.__len__() -1)  # 参数个数
print(sys.argv[1]) # 第一个参数

  • sys.path :获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到;

print(sys.path)  # Python的搜索路径

  • sys.exit(n) : 退出程序,正常退出时exit(0) ;

import sys
print("开始")
try:
    sys.exit(1)
except SystemExit:
    print("中途退出")
print("退出")
# 输出:
# 开始
# 中途退出
# 退出

  • sys.modules :返回系统导入的模块字段,key是模块名,value是模块 ;

4.shutil模块

  • 使用之前需要导入shutil模块;
  • copy()方法 :文件系统发级别的拷贝,将一个文件的内容拷贝到另一个文件中,类似于Linux系统的copy;

import shutil
# ./monitor.py 源文件
shutil.copy('./monitor.py', 'hello.py')

5.copy模块

  • 使用之前需要导入copy模块;

  • copy.copy():浅拷贝,只拷贝父对象,不会拷贝对象的内部的子对象;

  • copy.deepcopy():深拷贝,复制了对象和对象的所有子对象;


import copy
lst = [1,123]
lst.copy() 
# 浅拷贝
string1 = copy.copy('321')
print(string1)  # 321
# 深拷贝
string2 = copy.deepcopy('321')
print(string2)  # 321

6.文件路径斜杆问题

  • '/ ' :正斜杆,linux下使用正斜杆作为分隔符;

  • '\ ' :反斜杆,windows下使用的是反斜杆作为分隔符;

  • 注意:网页的背景图片路径必需是 '/ ' 正斜杆,还有 '\' 反斜杆有时候代表转义符;

参考:侠课岛( 9xkd.com )Python同学计划

    原文作者:Winter
    原文地址: http://blog.itpub.net/69908432/viewspace-2640079/
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞