当前位置: 首页 > news >正文

一个旅游网站怎么做/友情链接检测工具

一个旅游网站怎么做,友情链接检测工具,wordpress封禁插件,濮阳建站推广哪家好Python 程序设计入门(025)—— 使用 os 模块操作文件与目录 目录 Python 程序设计入门(025)—— 使用 os 模块操作文件与目录一、操作目录的常用函数1、os 模块提供的操作目录的函数2、os.path 模块提供的操作目录的函数 二、相对…

Python 程序设计入门(025)—— 使用 os 模块操作文件与目录

目录

  • Python 程序设计入门(025)—— 使用 os 模块操作文件与目录
    • 一、操作目录的常用函数
        • 1、os 模块提供的操作目录的函数
        • 2、os.path 模块提供的操作目录的函数
    • 二、相对路径与绝对路径
        • 1、相对路径
        • 2、绝对路径
    • 三、目录操作
        • 1、获取当前工作目录:getcwd() 函数
        • 2、设置当前工作目录:chdir() 函数
        • 3、查看指定路径下的文件和目录信息:listdir() 函数
        • 4、获取文件的绝对路径:abspath() 函数
        • 5、拼接路径:join() 函数
        • 6、判断目录或文件是否存在:exists() 函数
        • 7、创建目录:mkdir() 函数与 makedirs() 函数
        • (1)创建一级目录:mkdir() 函数
        • (2)创建多级目录:makedirs() 函数
        • 8、删除目录:rmdir() 函数与 removedirs() 函数
        • (1)删除一级空目录:rmdir() 函数
        • (2)删除多级目录:removedirs() 函数
        • 9、遍历目录:walk() 函数
    • 四、文件操作
        • 1、获取文件基本信息:stat() 函数
        • 2、删除文件:remove() 函数
        • 3、重命名文件与目录:rename() 函数
        • 4、分离文件名和扩展名:splitext() 函数
        • 5、从一个目录中提取文件名:basename() 函数
        • 6、从一个目录中提取文件路径,不包含文件名:dirname() 函数
        • 7、判断一个目录是否为路径:isdir() 函数

Python 内置了 os 模块及其子模块 os.path,用于对目录或文件进行操作。在使用 os 模块及其子模块 os.path 模块时,需要使用 import 导入该模块,才能使用它们提供的函数或方法。

一、操作目录的常用函数

1、os 模块提供的操作目录的函数

os 模块提供的操作目录的函数如下表所示:

函数说明
getcwd()返回当前的工作目录
listdir(path)返回指定路径下的文件和目录信息
mkdir(path[,mode])创建目录
makedirs(path1/path2…[,mode])创建多级目录
rmdir(path)删除目录
removedirs(path1/path2…)删除多级目录
chdir(path)将 path 设置为当前工作目录
walk(top [,topdown [,onerror]])遍历目录树。该函数返回一个元组,包括所有路径名、目录列表和
文件列表3个元素

2、os.path 模块提供的操作目录的函数

os.path 模块提供的操作目录的函数如下表所示:

函数说明
abspath(path)获取文件目录的绝对路径
exists(path)判断目录或者文件是否存在,如果存在返回True,否则返回False
join(path, name)将目录与目录或文件名拼接起来
splitext()分离文件名和扩展名
basename(path)从一个目录中提取文件名
dirname(path)从一个路径中提取文件路径,不包括文件名
isdir(path)判断是否为路径

二、相对路径与绝对路径

1、相对路径

当前工作目录指当前文件所在的目录。可以通过 os 模块的 getcwd() 函数获取当前工作目录。

代码如下:

import os
print("当前工作目录:",os.getcwd())程序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
当前工作目录: C:\Python\Python38

相对路径是依赖于当前工作目录的。如果在当前工作目录下有一个文件 stu.txt,在打开该文件时,可以直接使用文件名,此时使用的就是相对路径。文件 stu.txt 的实际路径就是当前工作目录【C:\Python\Python38】再加上相对路径,即:【C:\Python\Python38/stu.txt】。如果当前目录下有子目录 test,并且子目录中有一个文件 test.txt,那么在打开该文件时应用使用【test/test.txt】。

代码如下:

(1)使用相对路径打开 stu.txt

import os
print("当前工作目录:",os.getcwd())
with open("stu.txt","r",encoding="utf-8") as file1:  # 使用相对路径print(file1.readline())程序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
当前工作目录: C:\Python\Python38
姓名,性别,出生日期,院系,班级,手机号

(2)使用相对路径打开 test.txt

import os
print("当前工作目录:",os.getcwd())
with open("test/test.txt","r",encoding="utf-8") as file1:  # 使用相对路径print(file1.readline())程序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
当前工作目录: C:\Python\Python38
测试文件,内容如下:

(3)使用绝对路径打开以上两个文件

import os
print("当前工作目录:",os.getcwd())
print("文件stu.txt的内容如下:")
with open("C:/Python/Python38/stu.txt","r",encoding="utf-8") as file1:print(file1.readline())
print("文件test.txt的内容如下:")
with open("C:/Python/Python38/test/test.txt","r",encoding="utf-8") as file1:print(file1.readline())程序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
当前工作目录: C:\Python\Python38
文件stu.txt的内容如下:
姓名,性别,出生日期,院系,班级,手机号文件test.txt的内容如下:
测试文件,内容如下:

2、绝对路径

绝对路径是指在使用文件时指定文件的实际路径,绝对路径不依赖于当前工作目录。可以通过 os.path 模块的 abspath() 函数获取一个文件的绝对路径。

例如:

import os
print("当前工作目录:",os.getcwd())
print("文件stu.txt的绝对路径为:")
print(os.path.abspath("stu.txt"))
print("文件test.txt的绝对路径为:")
print(os.path.abspath("test/test.txt"))程序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
当前工作目录: C:\Python\Python38
文件stu.txt的绝对路径为:
C:\Python\Python38\stu.txt
文件test.txt的绝对路径为:
C:\Python\Python38\test\test.txt

三、目录操作

1、获取当前工作目录:getcwd() 函数

使用 os 模块的 getcwd() 函数可以获取当前工作目录。getcwd() 函数的语法格式如下:

os.getcwd()

例如:

import os
print("当前工作目录:",os.getcwd())程序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
当前工作目录: C:\Python\Python38

2、设置当前工作目录:chdir() 函数

使用 os 模块的 chdir() 函数可以把某个目录设置为当前工作目录。chdir() 函数的语法格式如下:

os.chdir(path)

例如:

import os
print("当前工作目录:",os.getcwd())  # 查看当前工作目录
os.chdir("D:\\erp\\")  # 设置当前工作目录
print("当前工作目录:",os.getcwd())  # 查看当前工作目录
os.chdir("C:\\Python\\Python38")  # 重新设置当前工作目录
print("当前工作目录:",os.getcwd())  # 查看当前工作目录程序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
当前工作目录: C:\Python\Python38
当前工作目录: D:\erp
当前工作目录: C:\Python\Python38

3、查看指定路径下的文件和目录信息:listdir() 函数

使用 os.path 模块的 listdir() 函数可以查看某个路径下的文件和目录信息。listdir() 函数的语法格式如下:

os.listdir(path)说明:返回类型为列表。

例如:

import os
list1 = os.listdir("C:\\Python\\Python38\\")
print(type(list1))
print(list1)程序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
<class 'list'>
['aa.txt', 'Date0819', 'DLLs', 'Doc', 'First.py', 'include', 'Lib', 'libs', 'LICENSE.txt', 'MyData', 'MyTest', 'NEWS.txt', 'python.exe', 'python3.dll', 'python38.dll', 'pythonw.exe', 'Scripts', 'stu.txt', 'tcl', 'test', 'Tools', 'vcruntime140.dll', 'vcruntime140_1.dll']

4、获取文件的绝对路径:abspath() 函数

使用 os.path 模块的 abspath() 函数可以获取一个文件的绝对路径。abspath() 函数的语法格式如下:

os.path.abspath(path)
说明:path 为要获取绝对路径的相对路径,可以是文件或目录。

例如:

import os
print("当前工作目录:",os.getcwd())
print("文件stu.txt的绝对路径为:")
print(os.path.abspath("stu.txt"))
print("文件test.txt的绝对路径为:")
print(os.path.abspath("test/test.txt"))程序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
当前工作目录: C:\Python\Python38
文件stu.txt的绝对路径为:
C:\Python\Python38\stu.txt
文件test.txt的绝对路径为:
C:\Python\Python38\test\test.txt

5、拼接路径:join() 函数

如果要将两个或者多个路径拼接组成一个新的路径,可以使用 os.path 模块的 join() 函数来实现。join() 函数的语法格式如下:

os.path.join(path1 [, path2 [, ...]])说明:
(1)path1、path2、... 表示要拼接的文件路径。
(2)如果要路径的路径都是相对路径,则拼接出来的结果将是一个相对路径。
(3)如果要拼接的路径中存在多个绝对路径,则以从左到右最后一次出现的路径为准,并且该路径之前的参数都被忽略。

例如:

import os
print(os.path.join("C:\\Python\\Python38","stu.txt"))   # 路径与文件拼接
print(os.path.join("C:\\Python\\Python38","test\\test.txt"))  # 路径与路径拼接
print(os.path.join("test","test.txt"))  # 两个相对路径拼接
print(os.path.join("d:\\","C:\\Python\\Python38\\")) # 两个绝对路径拼接程序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
C:\Python\Python38\stu.txt
C:\Python\Python38\test\test.txt
test\test.txt
C:\Python\Python38\

6、判断目录或文件是否存在:exists() 函数

使用 os.path 模块的 exists() 函数判断给定的目录或文件是否存在。exists() 函数的语法格式如下:

os.path.exists(path)
说明:
(1)path:要判断的目录,可以采用绝对路径,也可以采用相对路径。
(2)如果给定的路径存在,返回 True,否则返回 False

例如:

import os
print(os.path.exists("C:\\Python\\Python38\\"))  # 绝对路径
print(os.path.exists("stu.txt"))          #相对路径
print(os.path.exists("test\\test.txt"))   #相对路径程序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
True
True
True

7、创建目录:mkdir() 函数与 makedirs() 函数

os 模块提供了两个创建目录的函数:mkdir() 函数与 makedirs() 函数。其中 mkdir() 函数用于创建一级目录,makedirs() 函数用于创建多级目录。

(1)创建一级目录:mkdir() 函数

创建一级目录是指一次只能创建一级目录。使用 mkdir() 函数只能创建指定路径中的最后一级目录,如果该目录的上一级目录不存在,则抛出异常:FileNotfoundError 。mkdir() 函数的语法格式如下:

os.mkdir(path,mode = 0777)
说明:
(1)path:指定要创建的目录,可以使用绝对路径,也可以使用相对路径。
(2)mode:指定数值模式(文件权限),默认值为 0777。在非 unix 系统上无效或被忽略。

例如:

使用相对路径,在当前工作目录中创建目录。

代码如下:

import os
os.mkdir("MyData")  # 在当前工作目录中创建目录 MyData
print(os.path.exists("C:\\Python\\Python38\\MyData"))程序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
True

使用绝对路径,在当前工作目录中创建目录。

代码如下:

import os
os.mkdir("C:\\Python\\Python38\\MyTest")
print(os.path.exists("C:\\Python\\Python38\\MyData"))程序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
True

上级目录不存在:

import os
os.mkdir("C:\\Python\\Python380\\MyTest")
print(os.path.exists("C:\\Python\\Python38\\MyData"))程序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
Traceback (most recent call last):File "C:\Python\Python38\First.py", line 2, in <module>os.mkdir("C:\\Python\\Python380\\MyTest")
FileNotFoundError: [WinError 3] 系统找不到指定的路径。: 'C:\\Python\\Python380\\MyTest'

(2)创建多级目录:makedirs() 函数

创建多级目录使用 os 模块提供的 makedirs() 函数,该函数使用递归的方式创建目录。makedirs() 函数的语法格式如下:

os.makedirs(name, mode = 0777)
说明:
(1)name:要创建的目录,可以使用绝对路径,也可以使用相对路径。
(2)mode:指定数值模式(文件权限),默认值为 0777。该参数在非 unix 系统上无效或忽略。

例如:

import os
os.makedirs("F:\\Python\\MyTest\\Date001\\program\\")   # 使用绝对路径创建目录
os.makedirs("Date0819\\doc\\")   # 使用相对路径,在当前工作目录下创建子目录
print(os.path.exists("F:\\Python\\MyTest\\Date001\\program\\"))
print(os.path.exists("C:\\Python\\Python38\\Date0819\\doc\\"))程序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
True
True

如果在创建目录时,目录已经存在,则抛出异常:FileExistsError。可以在创建目录前,先判断要创建的目录是否存在,只有当目录不存在时才创建目录。

目录已存在,抛出异常:

import os
os.makedirs("F:\\Python\\MyTest\\Date001\\program\\") 程序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
Traceback (most recent call last):File "C:\Python\Python38\First.py", line 2, in <module>os.makedirs("F:\\Python\\MyTest\\Date001\\program\\")File "C:\Python\Python38\lib\os.py", line 223, in makedirsmkdir(name, mode)
FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件。: 'F:\\Python\\MyTest\\Date001\\program\\'

先判断目录是否存在,如果不存在再创建目录:

import os
if os.path.exists("F:\\Python\\MyTest\\Date001\\program\\"):print("要创建的目录已存在,不能创建同名的目录!")
else:os.makedirs("F:\\Python\\MyTest\\Date001\\program\\")print("目录创建成功!")程序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
要创建的目录已存在,不能创建同名的目录!

8、删除目录:rmdir() 函数与 removedirs() 函数

使用 rmdir() 函数与 removedirs() 函数可以删除目录,但必须是空目录才能被删除。否则会抛出异常:OSError: [WinError 145] 目录不是空的。

(1)删除一级空目录:rmdir() 函数

使用 rmdir() 函数可以删除最底层的空目录。rmdir() 函数的语法格式如下:

os.rmdir(path)

例如:

目录非空,删除失败:

import os
os.rmdir("F:\\Python\\")程序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
Traceback (most recent call last):File "C:\Python\Python38\First.py", line 2, in <module>os.rmdir("F:\\Python\\")
OSError: [WinError 145] 目录不是空的。: 'F:\\Python\\'

删除最后一级目录,删除成功:

import os
print(os.path.exists("F:\\Python\\MyTest\\Date001\\program"))
os.rmdir("F:\\Python\\MyTest\\Date001\\program")  # 删除最后一级目录
print(os.path.exists("F:\\Python\\MyTest\\Date001\\program"))#目录不存在
print(os.path.exists("F:\\Python\\MyTest\\Date001\\"))#目录存在程序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
True
False
True

(2)删除多级目录:removedirs() 函数

使用 removedirs() 函数可以删除多级目录。removedirs() 函数的语法格式如下:

os.removedirs(path)

例如:

import os
print(os.path.exists("F:\\Python\\MyTest\\Date001\\program"))
os.removedirs("F:\\Python\\MyTest\\Date001\\program")
# 删除目录 F:\Python\MyTest\Date001\program、F:\Python\MyTest\Date001、
# F:\Python\MyTest 以及 F:\Python
print(os.path.exists("F:\\Python\\MyTest\\Date001\\program"))#目录不存在
print(os.path.exists("F:\\Python\\MyTest\\Date001"))         #目录不存在
print(os.path.exists("F:\\Python"))                          #目录不存在
print(os.path.exists("F:"))                                  #目录不存在程序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
True
False
False
False
True

9、遍历目录:walk() 函数

使用 walk() 函数可以将指定目录下的全部目录(包括子目录)和文件浏览一遍。walk() 函数的语法格式如下:

os.walk(top [,topdown] [,onerror] [,followlinks])说明:
(1)top:指定要遍历的根目录。
(2)topdown:指定遍历的顺序,如果值为 True,则表示自上而下遍历(先遍历根目录),如果为 False,则表示自下而上遍历(先遍历最后一级子目录),默认值为 True。
(3)onerror:指定错误的处理方式(默认为忽略)。
(4)followlinks:将该参数设置为 True,指定在支持的系统上访问由符号链接指向的目录。默认情况下(False),walk() 函数不会向下转换成解析到目录的符号链接。
(5)返回值:包括3个元素的元组生成器对象(dirpath,dirname,filenames),其中:dirpath 表示当前遍历的目录,是一个字符串;dirname 表示当前目录下包含的子目录,是一个列表;filenames 表示当前目录下包含的文件,是一个列表。

例如:

遍历当前目录下的文件和目录:

import os
os.chdir("D:\\erp")
for dirpath,dirname,filenames in os.walk("."):print("="*30)print(dirpath)print(dirname)print(filenames)程序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
============================== D:\erp 目录下有4个目录,1个文件
.
['2021-12-2', '2022-1-2', '2023-5-6', '2023-8-17']
['etd-0712106-140843.pdf']
==============================D:\erp\2021-12-2 目录下有2个目录,0个文件
.\2021-12-2
['1', '2']
[]
==============================D:\erp\2021-12-2\1 目录下有0个目录,1个文件
.\2021-12-2\1
[]
['093TKU00385003-001.pdf']
==============================D:\erp\2021-12-2\2 目录下有0个目录,1个文件
.\2021-12-2\2
[]
['094CJU00457081-001.pdf']
==============================D:\erp\2022-1-2 目录下有0个目录,3个文件
.\2022-1-2
[]
['381001.pdf', '90421037.pdf', '90423009.pdf']
==============================D:\erp\2023-5-6 目录下有0个目录,2个文件
.\2023-5-6
[]
['etd-0704106-174528.pdf', 'etd-0710106-133405.pdf']
==============================D:\erp\2023-8-17 目录下有0个目录,1个文件
.\2023-8-17
[]
['qqq.pdf']

遍历指定目录下的文件和目录:

import os
for dirpath,dirname,filenames in os.walk("C:\\Python\\Python38\\Tools\\pynche"):print("="*30)print(dirpath)print(dirname)print(filenames)程序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
==============================目录 C:\\Python\\Python38\\Tools\\pynche下有 2 个目录,17 个文件
C:\Python\Python38\Tools\pynche
['X', '__pycache__']
['ChipViewer.py', 'ColorDB.py', 'DetailsViewer.py', 'html40colors.txt', 'ListViewer.py', 'Main.py', 'namedcolors.txt', 'pyColorChooser.py', 'pynche.pyw', 'PyncheWidget.py', 'StripViewer.py', 'Switchboard.py', 'TextViewer.py', 'TypeinViewer.py', 'webcolors.txt', 'websafe.txt', '__init__.py']
==============================目录 C:\Python\Python38\Tools\pynche\X下有 0 个目录,1 个文件
C:\Python\Python38\Tools\pynche\X
[]
['rgb.txt', 'xlicense.txt']
==============================目录 C:\Python\Python38\Tools\pynche\__pycache__下有0个目录,0个文件
C:\Python\Python38\Tools\pynche\__pycache__
[]
[]

遍历指定目录下的文件和目录:

import os
for dirpath,dirname,filenames in os.walk("C:\\Python\\Python38\\Tools\\pynche"):print(dirpath + str("(dir)"))for item in dirname:print("    |---",item + str("(dir)"))for file in filenames:print("    |---",file)程序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
C:\Python\Python38\Tools\pynche(dir)|--- X(dir)|--- __pycache__(dir)|--- ChipViewer.py|--- ColorDB.py|--- DetailsViewer.py|--- html40colors.txt|--- ListViewer.py|--- Main.py|--- namedcolors.txt|--- pyColorChooser.py|--- pynche.pyw|--- PyncheWidget.py|--- StripViewer.py|--- Switchboard.py|--- TextViewer.py|--- TypeinViewer.py|--- webcolors.txt|--- websafe.txt|--- __init__.py
C:\Python\Python38\Tools\pynche\X(dir)|--- rgb.txt|--- xlicense.txt
C:\Python\Python38\Tools\pynche\__pycache__(dir)

四、文件操作

os 模块除了可以对目录进行操作之外,还可以对文件进行一些操作。os 提供的文件操作函数如下表所示:

函数说明
access(path, accessmode)对文件是否有指定的访问权限。如果有指定的访问权限,则返回1,否则返回0。
文件的访问权限(参数 accessmode 的取值)包括:R_OK(读取)、
W_OK(写入)、X_OK(执行)或 F_OK(存在)。
chmod(path, mode)修改 path 指定的文件的访问权限。
remove(path)删除 path 指定的文件路径。
rename(src, dst)将文件或目录重命名为 dst
stat(path)返回 path 指定的文件信息
startfile(path [,operation])使用关联的应用程序打开 path 指定的文件

1、获取文件基本信息:stat() 函数

文件创建之后,文件本身会包含一些信息,比如:文件的最后一次访问时间、最后一次修改时间、文件大小等。使用 stat() 函数可以获取到文件的这些基本信息。stat() 函数的语法格式如下:

os.stat(path)
说明:
(1)path:要获取文件基本信息的文件路径,可以是相对路径,也可以是绝对路径。
(2)返回值:stat() 函数的返回值是一个对象,该对象包含文件的以下属性(如下表所示)。访问这些属性可以获取文件的一些基本信息。

stat() 函数返回的对象的属性:

属性说明
st_mode保护模式
st_ino索引号
st_nlink硬连接号(被连接数据)
st_size文件大小(单位为字节)
st_mtime最后一次修改时间
st_dev设备名
st_uid用户ID
st_gid组ID
st_atime最后一次访问时间
st_ctime最后一次状态变化时间

例如:

import os
st1 = os.stat("stu.txt")  # 当前工作目录,文件的属性
print(type(st1))
print("文件大小:",st1.st_size,"字节")
print("最后一次访问时间:",st1.st_atime)
st2 = os.stat("doc")      # 当前工作目录,目录的属性
print(type(st2))
print("文件大小:",st2.st_size,"字节")
print("最后一次访问时间:",st2.st_atime)程序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
<class 'os.stat_result'>
文件大小: 825
最后一次访问时间: 1692429378.8944023
<class 'os.stat_result'>
文件大小: 0
最后一次访问时间: 1692429444.3054664

2、删除文件:remove() 函数

os 模块的 remove() 函数可以删除指定的文件。remove() 函数的语法格式如下:

os.remove(path)说明:path 为要删除的文件路径,可以是绝对路径,也可以是相对路径。

例如:

import os
print(os.path.exists("aa.txt"))
os.remove("aa.txt")  # 删除当前工作目录下的文件
print(os.path.exists("aa.txt"))程序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
True
False

3、重命名文件与目录:rename() 函数

使用 rename() 函数可以重命名文件与目录。如果指定的路径是文件,则重命名文件,如果指定的是目录,则重命名目录。rename() 函数的语法格式如下:

os.rename(src, dst)
说明:
(1)src:指定要重命名的目录或文件。
(2)dst:指定重命名后的目录或文件。
(3)在进行文件目录的重命名时,如果指定的目录或文件不存在,将抛出异常:FileNotFoundError。因此,在进行文件或目录重命名时,应该先判断文件或目录是否存在,只有文件或目录存在时才进行重命名操作。

例如:

import os
print("目录mysoft是否存在:",os.path.exists("G:\\mysoft"))  
os.rename("G:\\mysoft","G:\\soft")  # 重命名目录
print("目录mysoft是否存在:",os.path.exists("G:\\mysoft"))  
print("目录soft是否存在:",os.path.exists("G:\\soft"))
print("="*40)
print("文件bak.sql是否存在:",os.path.exists("G:\bak.sql"))
os.rename("G:\\bak.sql","G:\\dzh.sql")  # 重命名目录
print("文件bak.sql是否存在:",os.path.exists("G:\bak.sql"))
print("文件dzh.sql是否存在:",os.path.exists("G:\dzh.sql"))程序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
目录mysoft是否存在: True
目录mysoft是否存在: False
目录soft是否存在: True
========================================
文件bak.sql是否存在: False
文件bak.sql是否存在: False
文件dzh.sql是否存在: True

4、分离文件名和扩展名:splitext() 函数

使用 os 模块提供的 splitext() 函数可以分离文件名与扩展名。splitext() 函数的语法格式如下:

os.path.splitext(filename) 说明:返回值为元组类型,包含两个元素,分别为文件名与扩展名。

例如:

import os
s = os.path.splitext("dzh.sql")
print(type(s))
print(s)
print("文件名为:",s[0])
print("文件扩展名为:",s[1])程序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
<class 'tuple'>
('dzh', '.sql')
文件名为: dzh
文件扩展名为: .sql

5、从一个目录中提取文件名:basename() 函数

使用 os 模块提供的 basename() 函数可以把一个目录中的文件名提取出来。basename() 函数的语法格式如下:

os.path.basename(path)说明:返回值是一个字符串。

例如:

import os
s = os.path.basename("C:\\Python\\Python38\\dzh.py")
print(type(s))
print(s)程序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
<class 'str'>
dzh.py

6、从一个目录中提取文件路径,不包含文件名:dirname() 函数

使用 os 模块提供的 dirname() 函数可以从一个目录中提取出文件路径。dirname() 函数的语法格式如下:

os.path.dirname(path)

例如:

import os
s = os.path.dirname("C:\\Python\\Python38\\dzh.py")
print(type(s))
print(s)程序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
<class 'str'>
C:\Python\Python38

7、判断一个目录是否为路径:isdir() 函数

使用 os 模块提供的 isdir() 函数可以判断一个目录是否为路径。isdir() 函数的语法格式如下:

os.path.isdir(path)

例如:

import os
s = os.path.isdir("C:\\Python\\Python38\\dzh.py")
print(type(s))
print(s)
print("="*60)
s = os.path.isdir("C:\\Python\\Python38\\")
print(s)程序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
<class 'bool'>
False
============================================================
True

相关文章:

Python 程序设计入门(025)—— 使用 os 模块操作文件与目录

Python 程序设计入门&#xff08;025&#xff09;—— 使用 os 模块操作文件与目录 目录 Python 程序设计入门&#xff08;025&#xff09;—— 使用 os 模块操作文件与目录一、操作目录的常用函数1、os 模块提供的操作目录的函数2、os.path 模块提供的操作目录的函数 二、相对…...

excel逻辑函数篇1

1、AND(logical1,[logical2],…)&#xff1a;用于测试所有条件是否均为TRUE 检查所有参数均为true&#xff0c;如果是则返回true 2、OR(logical1,[logical2],…)&#xff1a;用于测试是否有为TRUE的条件 如果任意参数值为true&#xff0c;即返回true&#xff1b;只有当所有参数…...

前端基础(Vue的模块化开发)

目录 前言 响应式基础 ref reactive 学习成果展示 Vue项目搭建 总结 前言 前面学习了前端HMTL、CSS样式、JavaScript以及Vue框架的简单适用&#xff0c;接下来运用前面的基础继续学习Vue&#xff0c;运用前端模块化编程的思想。 响应式基础 ref reactive 关于ref和react…...

SystemVerilog interface使用说明

1. Interface概念 System Verilog中引入了接口定义&#xff0c;接口与module 等价的定义&#xff0c;是要在其他的接口、module中直接定义&#xff0c;不能写在块语句中&#xff0c;跟class是不同的。接口是将一组线捆绑起来&#xff0c;可以将接口传递给module。 2. 接口的优…...

机器人制作开源方案 | 送餐机器人

作者&#xff1a;赖志彩、曹柳洲、王恩开、李雪儿、杨玉凯 单位&#xff1a;华北科技学院 指导老师&#xff1a;张伟杰、罗建国 一、作品简介 1. 场景调研 1.1项目目的 近年来&#xff0c;全国多地疫情频发&#xff0c;且其传染性极高&#xff0c;食品接触是传播途径之一。…...

Gradio部署应用到服务器不能正常访问

用Gradio部署一个基于ChatGLM-6B的应用&#xff0c;发布到团队的服务器上&#xff08;局域网&#xff0c;公网不能访问&#xff09;&#xff0c;我将gradio应用发布到服务器的9001端口 import gradio as gr with gr.Blocks() as demo:......demo.queue().launch(server_port90…...

数据暴涨时代,该如何数据治理?_光点科技

随着信息技术的迅猛发展&#xff0c;数据已经成为现代社会的核心资源。在这个被称为"数据暴涨时代"的时代里&#xff0c;大量的数据源源不断地被产生和积累&#xff0c;但如何有效地管理、分析和利用这些数据成为了一个迫切需要解决的问题。数据治理&#xff0c;作为…...

2021年03月 C/C++(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题&#xff1a;找和为K的两个元素 在一个长度为n(n < 1000)的整数序列中&#xff0c;判断是否存在某两个元素之和为k。 时间限制&#xff1a;1000 内存限制&#xff1a;65536 输入 第一行输入序列的长度n和k&#xff0c;用空格分开。 第二行输入序列中的n个整数&#xff…...

GPT-5出世?OpenAI GPT-5商标已注册

OpenAI的GPT已经成为了业界标杆&#xff0c;升级速度之快让人瞠目&#xff0c;别人追GPT-3.5的时候GPT-4横空出世&#xff0c;差距被拉开了&#xff0c;现在GPT-5就要来了。 据商标律师泄露的消息&#xff0c;OpenAI已于7月18日注册了GPT-5商标。虽然注册商标并不罕见&#xf…...

优雅的使用 Dockerfile 定制镜像

一、使用 Dockerfile 定制镜像 1.1、Dockerfile 定制镜像 镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本&#xff0c;用这个脚本来构建、定制镜像&#xff0c;无法重复的问题、镜像构建透明性的问题、…...

limit的用法mysql

当你在 MySQL 数据库中使用 LIMIT 语句&#xff0c;它可以用于限制查询结果的行数。这在分页查询或者限制返回的数据量时非常有用。下面是一些示例&#xff1a; 返回前几行数据&#xff1a; SELECT * FROM Customers LIMIT 5;这将返回 Customers 表中的前 5 行数据。 分页查…...

clickhouse Checksum doesn‘t match: 问题修复

1. 问题描述 SQL 错误 [40] [07000]: Code: 40. DB::Exception: Checksum doesnt match: corrupted data. Reference: 50e8c1efa78de2881b725d44b04be1fe. Actual: 161c99eb681ec36b83540ecdd65ad8c9. Size of compressed block: 32846. The mismatch is caused by single bit…...

企业如何开展个人信息安全影响评估(PIA)二

基本概念 根据《信息安全 技术个人信息安全影响评估指南》&#xff08;GB/T 39335—2020&#xff1b;personal information security impact assessment&#xff0c;简称“PIA”&#xff09;&#xff0c;个人信息安全影响评估是指针对个人信息处理活动&#xff0c;检验其合法合…...

android TextView 超出长度使用省略号

在Android中最常见的需求&#xff0c;就是在在外部展示信息时&#xff0c;需要简要展示内容。TextView仅需在静态布局文件中设置以下几个属性&#xff1a; android:maxWidth“100dp” // 宽度是多少才算超出 android:maxLines"2" // 高度多少才算超出 android:elli…...

c++ | 字节转换 | 字长 | 机器位数

为什么有的时候脑子转不过来&#xff1f;&#xff1f; 为什么要对字节、机器长啊、位啊都要门清 位数 一般的就是指计算机的位数&#xff0c;比如64位/32位&#xff0c;更简单的理解&#xff0c;计算机就是在不停的做二进制的计算&#xff0c;比如32位计算机&#xff0c;在长…...

7-4 交换最小值和最大值

分数 15 全屏浏览题目 切换布局 作者 C课程组 单位 浙江大学 本题要求编写程序&#xff0c;先将输入的一系列整数中的最小值与第一个数交换&#xff0c;然后将最大值与最后一个数交换&#xff0c;最后输出交换后的序列。 注意&#xff1a;题目保证最大和最小值都是唯一的。…...

解决Pycharm的Settings中Project不见了也无法选择Python Interpreter的方法

目录 一、问题如下二、解决方法 一、问题如下 突然打开项目没有python解释器&#xff0c;也无法重新配置python Interpreter&#xff0c;而且整个文件夹是黄色高亮的形式&#xff0c;如下显示&#xff0c;而且重新安装了pycharm也没用甚至说打开File–>Setting–>Projec…...

AWS EKS 集群自动扩容 Cluster Autoscaler

文章目录 一&#xff0c;需求工作需求说明 二&#xff0c;部署精简命令执行1&#xff0c;要求2&#xff0c;查看EC2 Auto Scaling groups Tag3&#xff0c;创建Serviceaccount需要的Policy&#xff0c;Role4&#xff0c;部署Cluster Autoscaler5&#xff0c;验证6&#xff0c;常…...

excel中有哪些通配符、excel配置问题,数学函数篇1之sum系列

学习excel前需要明确的是事&#xff1a;   在学习excel函数之前&#xff0c;大家需要明确一件事&#xff0c;excel现在设计到了一些新函数&#xff0c;这些新函数只能存在于office365、office2019及更 新版本之中&#xff0c;所以建议大家在学习时安装较新的版本&#xff0c;…...

工控行业需要熟悉的工业级通信协议

1. Modbus RTU Modbus RTU 是一种串行通信协议&#xff0c;常用于工控行业。它具有以下特点和优势&#xff1a; 采用二进制编码&#xff0c;数据传输更加高效。支持多种传输介质&#xff0c;如RS-232、RS-485等。容易实现和使用&#xff0c;适用于各种设备。具备强大的错误检…...

力扣题解(1030. 距离顺序排列矩阵单元格),带注释

题目描述 链接:点我 注意&#xff1a;多看几遍题目&#xff0c;开始没看懂…相当于计算矩阵网格里面的点&#xff08;不要计算边界&#xff09; 我开了题解才明白题的意思 orz… 题解 class Solution {public int[][] allCellsDistOrder(int rows, int cols, int rCenter, …...

每天一道leetcode:剑指 Offer 34. 二叉树中和为某一值的路径(中等图论深度优先遍历递归)

今日份题目&#xff1a; 给你二叉树的根节点 root 和一个整数目标和 targetSum &#xff0c;找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 示例1 输入&#xff1a;root [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSu…...

利用POM完成脚本分离实现企业级自动化(POM设计模式+页面的框架封装+测试报告截图)

利用POM完成脚本分离实现企业级自动化&#xff08;POM设计模式页面的框架封装测试报告截图&#xff09; 项目-测试-手工测试 项目-测试-手工测试 1.了解需求&#xff1b; 2.编写测试用例&#xff08;开始&#xff09;——功能测试组会去做的事情 3.执行测试用例——发送测试报…...

嵌入式设计中对于只有两种状态的变量存储设计,如何高效的对循迹小车进行偏差量化

前言 &#xff08;1&#xff09;在嵌入式程序设计中&#xff0c;我们常常会要对各类传感器进行数据存储。大多时候的传感器&#xff0c;例如红外光传感器&#xff0c;返回的数据要么是0&#xff0c;要么是1。因此&#xff0c;只需要一bit就能够存储。而很多人却常常使用char型数…...

day53 第九章 动态规划part14● 1143.最长公共子序列 ● 1035.不相交的线 ● 53. 最大子序和 动态规划

1143. 最长公共子序列 class Solution {public int longestCommonSubsequence(String text1, String text2) {int m text1.length();int n text2.length();int[][] dp new int[m 1][n 1];for (int i 1; i < m; i) {for (int j 1; j < n; j) {if (text1.charAt(i …...

shell编程 基础

将content.txt文件中的内容输出到控制台上 将content.txt中有tom的行输出到控制台 将$2文件中含有gree的行输出到控制台 case语法 简易计算器 查找有root的行 查找以root开头的行 查询时忽略大小写 grep -E 则适用于复杂的正则表达式&#xff0c;可以使用多项选择、重复和子表达…...

人工智能在网络安全中的应用: 分析人工智能、机器学习和深度学习等技术在预测、检测和应对网络攻击中的作用

第一章&#xff1a;引言 随着信息技术的迅猛发展&#xff0c;网络安全已成为当今社会不容忽视的重要议题。网络攻击手法日益复杂&#xff0c;传统的防御方法已经不再足够。在这一背景下&#xff0c;人工智能&#xff08;AI&#xff09;技术正逐渐崭露头角&#xff0c;为网络安…...

使用 Redis 实现异步队列

使用 Redis 实现异步队列 一、简介1 异步队列2 异步队列与同步队列 二、Redis 实现异步队列1 利用 Redis 的 List 数据类型实现异步队列2 利用 Redis 的 Pub/Sub 功能实现异步队列3 利用 Redis 的 Sorted Set 数据类型实现延迟队列 三、Redis 异步队列的实际应用场景4.1 异步任…...

RocketMQ、Dashboard部署以及安全设置

RocketMQ、dashboard部署以及安全设置 一、启动RocketMQ1.1 下载RocketMQ1.2 修改配置文件1.2.1 修改nameServer Jvm内存配置1.2.2 修改broker参数 1.3 启动1.3.1 启动NameServer1.3.2 启动Broker1.3.3 测试是否启动成功1.3.3.1 测试消息发送1.3.3.2 测试消息接收1.3.3.3 Java程…...

Android AlarmManager设置闹钟

官网镇楼&#xff1a;设置重复闹铃时间 闹钟具有以下特征&#xff1a; 它们可让您按设定的时间和/或间隔触发 intent。您可以将它们与广播接收器结合使用&#xff0c;以启动服务以及执行其他操作。它们在应用外部运行&#xff0c;因此即使应用未运行&#xff0c;或设备本身处…...