【持续更新】python文件和字符串操作,linux常用命令

每次都用到,每次都得查,很烦。这里记录常用的python对文件的操作和linux各种命令,持续更新。

文章目录

  • python对文件和字符串操作
    • 遍历文件夹及子文件中所有文件,进行操作
    • 分割字符串
    • 读取txt文件中内容
    • 读取csv文件中内容
    • 对字符串进行排序
  • linux常用命令
    • 查看当前目录下每个子目录的文件数量
    • 查看文件夹下一级文件夹内存
    • 查看管理员
    • 查找某个被占用端口的进程
    • 查看cpu型号
    • 显示文件中指定行

python对文件和字符串操作

遍历文件夹及子文件中所有文件,进行操作

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'

读取txt文件中内容

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)

读取csv文件中内容

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)

linux常用命令

查看当前目录下每个子目录的文件数量

查看当前目录下每个子目录的文件数量
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

查看cpu型号

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行


  1. os.path.split()函数
  2. linux 查看当前目录下每个子目录的文件数量

你可能感兴趣的:(python,linux,开发语言)