# -*- coding: utf-8 -*-
import os
from time import sleep
if __name__ == '__main__':
current_path = os.path.basename(__file__)
current_dir = os.path.dirname(__file__)
print("当前文件夹路径: {}".format(current_dir))
print("当前文件路径: {}".format(current_path))
# 创建文件夹
for i in range(1, 9):
temp_file_name = "test0{}".format(i)
temp_path = os.path.join(current_dir, temp_file_name)
if not os.path.exists(temp_path):
os.makedirs(temp_path)
print("Folder '{}' created".format(temp_path))
sleep(5)
# 删除文件夹
for i in range(1, 9):
temp_file_name = "test0{}".format(i)
temp_path = os.path.join(current_dir, temp_file_name)
if os.path.exists(temp_path):
os.removedirs(temp_path)
print("Folder '{}' removed".format(temp_path))
# 遍历文件夹
for path in os.listdir():
if os.path.isdir(path):
print("Folder: {}".format(path))
elif os.path.isfile(path):
print("File: {}".format(path))
print("completed")
import os
import shutil
# 创建8个目录
for i in range(1, 9):
dirname = f"test{i:02d}"
os.mkdir(dirname)
print(f"成功创建目录 {dirname}")
input("目录已创建完成,按任意键继续删除...")
# 删除8个目录
for i in range(1, 9):
dirname = f"test{i:02d}"
shutil.rmtree(dirname)
print(f"成功删除目录 {dirname}")
# 遍历当前目录及其所有子目录中的所有文件
for root, dirs, files in os.walk("."):
for filename in files:
print(os.path.join(root, filename))
思路:
import os
def find(dir,name):
#print(dir)
for i in [x for x in os.listdir(dir) if os.path.isfile(os.path.join(dir,x)) and name in os.path.splitext(x)[0]]:
print(os.path.join(dir,i))
for i in [x for x in os.listdir(dir) if os.path.isdir(os.path.join(dir,x))]: #os.path.isfile() 需要完整路径或者相对当前目录的相对路径
if os.listdir(os.path.join(dir,i))!=[]:
try:
find(os.path.join(dir,i),name)
except:
pass
dir = '/root/Desktop'
name = 'test'
find(dir,name)
针对如何正确应用Python的OS库的问题,以下是一些优化后可用的示例代码和说明:
import os
# 创建目录
if not os.path.exists("./testdir"):
os.mkdir("./testdir")
else:
print("该目录已经存在!")
在创建目录之前首先判读该目录是否存在,如果存在则提示该目录已经存在,否则调用os.mkdir
创建目录。这样可以防止重复创建目录。
import os
# 删除目录或文件
if os.path.exists("./testdir"):
if os.path.isdir("./testdir"):
os.rmdir("./testdir")
elif os.path.isfile("./testdir"):
os.remove("./testdir")
else:
print("无法删除该对象!")
else:
print("该目录或文件不存在!")
在删除目录或文件之前首先判断该目录或文件是否存在,如果存在,则先判断是目录还是文件,然后调用相应的方法os.rmdor
或os.remove
来删除目录或文件,否则输出该目录或文件不存在。
import os
# 获取文件大小及文件名称
path = "./test.txt"
if os.path.exists(path):
if os.path.isfile(path):
size = os.path.getsize(path)
filename = os.path.basename(path)
print("文件大小为:", size)
print("文件名称为:", filename)
else:
print("该路径不是文件!")
else:
print("该路径不存在!")
在获取文件大小和文件名称之前也要判断该路径是否存在,如果存在则判断是不是文件类型,然后调用os.path.getsize
来获取文件大小,再调用os.path.basename
来获取文件名称。最后输出获取到的结果。
import os
# 列出目录下的所有文件和文件夹
dir_path = "./"
if os.path.exists(dir_path):
if os.path.isdir(dir_path):
files = os.listdir(dir_path)
print("当前目录下的文件和文件夹有:")
for file in files:
print(file)
else:
print("该路径不是目录!")
else:
print("该路径不存在!")
在列出目录下的所有文件和文件夹之前同样要判断该路径是否存在,如果存在则判断是不是目录类型,然后调用os.listdir
来列出该目录下的所有文件和文件夹,最后通过for循环依次输出。
综上所述,正确应用Python的OS库需要仔细阅读相关文档和资料,并结合实际情况进行练习。在使用该库的过程中,需要注意一些细节问题,比如路径的前缀符号、目录的创建和删除、文件的操作等等。通过不断的实践和总结,才能更好地掌握Python的OS库的使用方法。