每次都用到,每次都得查,很烦。这里记录常用的python对文件的操作和linux各种命令,持续更新。
import os
def get_filelist(dir, Filelist):
"""
遍历文件夹及其子文件夹中的文件,并存储在一个列表中
Args:
dir: 输入文件夹路径
Filelist: 空文件列表[]
Returns:
文件列表Filelist,包含文件名(完整路径)
"""
newDir = dir
if os.path.isfile(dir):
# if dir.endswith('.txt'):
# os.remove(dir)
Filelist.append(dir)
elif os.path.isdir(dir):
for s in os.listdir(dir):
newDir = os.path.join(dir, s)
get_filelist(newDir, Filelist)
return Filelist
if __name__ == '__main__':
image_path = r'./transfer_data/office_caltech_10'
source_path = r'../office_caltech_10'
list = get_filelist(image_path, [])
print(len(list))
os.walk()
也可以做到这一点:
# 使用os.walk扫描目录
import os
for curDir, dirs, files in os.walk("test"):
print("====================")
print("现在的目录:" + curDir)
print("该目录下包含的子目录:" + str(dirs))
print("该目录下包含的文件:" + str(files))
os.path.split() 函数
>>> import os
>>> os.path.split('C:/soft/python/test.py')
('C:/soft/python', 'test.py')
>>> os.path.split('C:/soft/python/test')
('C:/soft/python', 'test')
>>> os.path.split('C:/soft/python/')
('C:/soft/python', '')
(完)
os.path.basename() 函数
>>> path='D:\file\cat\dog.jpg'
>>> print(os.path.basename(path))
>
'dog.jpg'
f = open("xxx.txt", "r")
lines = f.readlines() # 读取全部内容, 并以列表方式返回
for line in lines:
line = line.strip()
shutil.copy(os.path.join(source_path, e.split('/')[-3], e.split('/')[-2], line), os.path.split(e)[0])
print("finish: ", line)
import numpy as np
data = np.loadtxt(open("路径.csv","rb"),delimiter=",",skiprows=n,usecols=[2,3]) # skiprows中n为0时, 是不跳过; 而usecols中是按0开始计数的
for path, dirs, files in os.walk(file_path):
dirs.sort()
files_tmp = copy.deepcopy(files)
for file in files:
if file.endswith("aedat4"):
files_tmp.remove(file)
if files[0].endswith('aedat') or files[0].endswith('aedat4'):
files = files_tmp
files.sort(key=lambda x: int(x.split('_')[-1][:-6]))
for file in files:
if file.endswith("aedat"):
self.data.append(path + "/" + file)
label_number = classes[os.path.basename(path)]
self.targets.append(label_number)
查看当前目录下每个子目录的文件数量
find . -maxdepth 1 -type d | while read dir; do count=$(find "$dir" -type f | wc -l); echo "$dir : $count"; done
统计当前文件夹下文件的个数,包括子文件夹里的
ls -lR|grep "^-"|wc -l
统计文件夹下目录的个数,包括子文件夹里的
ls -lR|grep "^d"|wc -l
统计当前文件夹下文件的个数
ls -l |grep "^-"|wc -l
统计当前文件夹下目录的个数
ls -l |grep "^d"|wc -l
du -h --max-depth=1
cat /etc/sudoers
sudo lsof -i:29500 # 必须要sudo
cat /proc/cpuinfo
【一】从第3000行开始,显示1000行。即显示3000~3999行
cat filename | tail -n +3000 | head -n 1000
【二】显示1000行到3000行
cat filename| head -n 3000 | tail -n +1000
注意两种方法的顺序。
tail -n 1000:显示最后1000行
tail -n +1000:从1000行开始显示,显示1000行以后的
head -n 1000:显示前面1000行