本文总结 python
中使用 os
模块发送 shell
命令的不完全总结。
Updated: 2023 / 1 / 13
总览
常见方法
信息
方法 | 含义 |
---|---|
os.getcwd() | 获取文件所在路径。 |
os.path.getsize() 1 | 获取指定文件的大小,以 bytes 为单位 。 |
路径
参考这里 2
方法 | 含义 |
---|---|
os.path.exists(path: StrOrBytesPath) | 用于判断是否存在指定文件或者文件夹是否存在,并返回布尔值。 |
os.path.isdir() | 用于判断某一对象(需提供绝对路径)是否为目录。 |
os.path.isfile() | 用于判断某一对象(需提供绝对路径)是否为文件。 |
创建
方法 | 含义 |
---|---|
os.mknod(path, mode, device, dir_fd) | 用于直接创建一个文件,一般会在此之前判断文件是否存在。 |
os.mkdir(path) | 比如,path = E:/poly/ly , 则 os.mkdir("E:/poly/ly") 时第一个目录 poly 必须存在,第二个目录 ly 不存在的话则会创建 ly 。 |
os.makedirs(path) | 用于创建递归目录。只要目录路径下有不存在的目录,就会创建该目录,然后递归的创建文件目录。比如,os.makedirs("E:/poly/ly") ,如果第一个目录 poly 不存在,则创建第一个目录 poly 以及第二个目录 ly 。 |
文件
方法 | 含义 |
---|---|
os.listdir() | 不仅是文件,文件夹也会被遍历到,例如 test 即是一个文件夹。返回一个列表,其中包含由 path 指定的目录中的条目的名称。 列表是任意顺序的。它不包括特殊条目 . 和 .. ,即使它们存在于目录中。 |
os.path.splitext() | 分离文件名与扩展名;默认返回 (fname,fextension) 元组,可做切片操作。 |
os.walk | 返回指定路径下所有文件和子文件夹中所有文件列表 6。 |
示例
参考这里 7
files = os.listdir('/Users/PycharmProjects/Test')
# ['example1.py', '3dp.py', ..., 'Ex_RawData_pandas_filters.csv', '.idea']
for file in files:
filenames = os.path.splitext(file)
# ('example1', '.py')
# ('3dp', '.py')
# ......
# ('Ex_RawData_pandas_filters', '.csv')
# ('.idea', '')
dir = '/Users/PycharmProjects/Test'
for root, dirs, files in os.walk(dir):
print(root)
print(dirs)
print(files)
# /Users/PycharmProjects/Test/
# []
# ['MultiSelectedTreeview.py', 'geography_info.xlsx', 'MultiSelectedTreeview.gif']
#
# 遍历子文件夹Test,发现其中并没有子文件夹,所以dirs=[],但是子文件夹Test中有其他文件,所以有3个文件的值。
获取指定文件夹路径下指定文件格式的文件名称
-
os.path.splittext
dir = '/Users/PycharmProjects/Tkinter_MultiSelectedTreeview'
files = os.listdir(dir)
print(files)
pyfile = []
for file in files:
if os.path.splitext(file)[1] == '.py':
pyfile.append(file)
print(pyfile)
# ['MultiSelectedTreeview.py']
-
np.char.endswith
import numpy as np
files = os.listdir(dir)
pyfile = np.array(files)
pyidx = np.char.endswith(pyfile, '.py')
pyfile = pyfile[pyidx]
print(pyfile)
# ['MultiSelectedTreeview.py']