给文件添加前缀

以下是一个用于给文件添加前缀的 Python 脚本,它能够批量为指定目录下的所有文件添加自定义前缀。脚本包含错误处理功能,可以处理文件重命名过程中可能出现的各种异常情况。

import os
import argparse
from pathlib import Path

def add_prefix_to_files(directory, prefix, recursive=False, dry_run=False):
    """
    为指定目录中的所有文件添加前缀
    
    参数:
    directory (str): 要处理的目录路径
    prefix (str): 要添加的前缀字符串
    recursive (bool): 是否递归处理子目录
    dry_run (bool): 是否进行试运行(不实际修改文件)
    """
    try:
        # 确保目录存在
        if not os.path.exists(directory):
            raise FileNotFoundError(f"指定的目录不存在: {directory}")
        
        if not os.path.isdir(directory):
            raise NotADirectoryError(f"指定的路径不是一个目录: {directory}")
        
        processed_files = 0
        skipped_files = 0
        
        # 获取所有要处理的文件
        if recursive:
            # 递归处理所有子目录
            files = [os.path.join(root, name) 
                    for root, dirs, files in os.walk(directory) 
                    for name in files]
        else:
            # 只处理当前目录
            files = [os.path.join(directory, name) 
                    for name in os.listdir(directory) 
                    if os.path.isfile(os.path.join(directory, name))]
        
        # 处理每个文件
        for file_path in files:
            try:
                # 获取文件的目录和原始文件名
                file_dir = os.path.dirname(file_path)
                original_name = os.path.basename(file_path)
                
                # 构建新的文件名
                new_name = prefix + original_name
                
                # 构建新的文件路径
                new_file_path = os.path.join(file_dir, new_name)
                
                # 如果新文件名已经存在,则跳过
                if os.path.exists(new_file_path):
                    print(f"跳过: {file_path} (新文件名已存在)")
                    skipped_files += 1
                    continue
                
                # 执行重命名操作(或仅打印)
                if dry_run:
                    print(f"将 {original_name} 重命名为 {new_name}")
                else:
                    os.rename(file_path, new_file_path)
                    print(f"已重命名: {original_name} -> {new_name}")
                
                processed_files += 1
            except Exception as e:
                print(f"处理文件 {file_path} 时出错: {e}")
        
        print(f"\n处理完成!")
        print(f"成功处理的文件: {processed_files}")
        print(f"跳过的文件: {skipped_files}")
        
    except Exception as e:
        print(f"操作失败: {e}")

if __name__ == "__main__":
    # 创建命令行参数解析器
    parser = argparse.ArgumentParser(description='为目录中的文件添加前缀')
    
    # 添加必需的参数
    parser.add_argument('-d', '--directory', required=True, 
                        help='要处理的目录路径')
    parser.add_argument('-p', '--prefix', required=True, 
                        help='要添加的前缀字符串')
    
    # 添加可选参数
    parser.add_argument('-r', '--recursive', action='store_true', 
                        help='递归处理子目录')
    parser.add_argument('-n', '--dry-run', action='store_true', 
                        help='试运行,不实际修改文件')
    
    # 解析命令行参数
    args = parser.parse_args()
    
    # 调用函数执行文件重命名
    add_prefix_to_files(args.directory, args.prefix, args.recursive, args.dry_run)    

使用说明:

  1. 运行前请确保已安装 Python 3.6 或更高版本
  2. 脚本支持以下命令行参数:
  • -d/--directory:必需,指定要处理的目录路径
  • -p/--prefix:必需,指定要添加的前缀字符串
  • -r/--recursive:可选,递归处理子目录
  • -n/--dry-run:可选,试运行(不实际修改文件)

例如,要为当前目录下的所有文件添加前缀 “backup_”,可以运行:

python add_prefix_to_files.py -d . -p "backup_"

如需先查看操作效果而不实际修改文件,可以添加 --dry-run 参数:

python add_prefix_to_files.py -d . -p "backup_" --dry-run

如果需要递归处理所有子目录中的文件,可以添加 --recursive 参数:

python add_prefix_to_files.py -d . -p "backup_" --recursive

linux磁盘空间满

根据系统输出,根目录/所在的/dev/vda1分区已被占满,仅剩 13.80MB 空间。这会导致系统无法创建新文件、运行程序或更新,需要立即清理。以下是快速排查和清理的步骤:​

1. 查找大文件和目录

使用以下命令找出占用空间最大的文件和目录:​

TypeScript取消自动换行复制

# 查找根目录下占用空间最大的前10个文件和目录(深度为1)​

sudo du -hxd 1 / | sort -hr | head -n 10​

# 查找大于1GB的文件​

sudo find / -type f -size +1G -exec du -sh {} \; 2>/dev/null​​

重点检查:​

  • 日志文件:/var/log/目录下的日志(如syslog、nginx/access.log等)​
  • 临时文件:/tmp/和/var/tmp/目录​
  • 缓存文件:/var/cache/(如yum、apt缓存)​
  • Docker 镜像:如果安装了 Docker,检查/var/lib/docker/​
  • 大数据库文件:如 MySQL、PostgreSQL 的数据目录​

2. 清理日志文件

TypeScript取消自动换行复制

# 查看日志文件大小​

sudo du -sh /var/log/*​

# 安全清理(保留最新日志,清空历史内容)​

sudo truncate -s 0 /var/log/syslog​

sudo truncate -s 0 /var/log/nginx/access.log # 按需修改​

# 或者直接删除(谨慎操作!)​

sudo rm /var/log/old_log_file.log​​

3. 清理系统缓存

TypeScript取消自动换行复制

# 清理yum缓存(CentOS/RHEL)​

sudo yum clean all​

# 清理apt缓存(Ubuntu/Debian)​

sudo apt-get clean​

sudo apt-get autoclean​

# 清理Docker缓存(如果安装了Docker)​

sudo docker system prune -a –volumes​​

4. 清理临时文件

TypeScript取消自动换行复制

# 清理/tmp目录(确保无重要文件)​

sudo rm -rf /tmp/*​

# 清理系统临时文件(如30天未使用的文件)​

sudo find /var/tmp -type f -atime +30 -delete​​

5. 卸载无用软件

TypeScript取消自动换行复制

# 查看已安装软件占用空间(CentOS/RHEL)​

yum list installed | awk ‘{print $1}’ | xargs yum info | grep -E “Name|Size”​

# 卸载无用软件(示例:卸载apache2)​

sudo yum remove httpd # CentOS/RHEL​

sudo apt-get purge apache2 # Ubuntu/Debian​​

6. 释放 inode 空间(如果 inode 使用率高)

TypeScript取消自动换行复制

# 检查inode使用率​

df -i​

# 查找包含大量小文件的目录​

sudo find / -xdev -type d -print0 | xargs -0 du -s | sort -n | tail -n 10​​

如果 inode 已满,需删除大量小文件(如日志碎片、缓存文件)。​

7. 临时扩容(如果无法立即清理)

如果清理后空间仍不足,可以考虑:​

  1. 挂载临时目录:将大文件临时移至其他分区。​
  1. 扩展磁盘:通过云服务商或物理设备扩容(需重启系统)。​

注意事项

  • 谨慎删除:避免删除系统关键文件(如/lib、/usr/bin)。​
  • 备份数据:删除重要文件前先备份。​
  • 监控空间:清理后使用df -h确认空间释放情况。​

如果问题持续存在,可能需要进一步分析磁盘使用模式或考虑扩容根分区。

Yii2高级模板中,添加新的应用

Yii2 高级模板中自带 frontend 和 backend 应用程序,如果要添加其它应用程序,比如 api

步骤如下:

  1. 与backend 或者 frontend 同目录下 复制一份backend或者frontend应用,改名为api
  2. 打开environments目录,index.php中添加api相关内容,复制前两个应用的稍加修改就可
return [
    'Development' => [
        'path' => 'dev',
        'setWritable' => [
            'backend/runtime',
            'backend/web/assets',
            'frontend/runtime',
            'frontend/web/assets',
            'api/runtime',
            'api/web/assets',
        ],
        'setExecutable' => [
            'yii',
            'yii_test',
        ],
        'setCookieValidationKey' => [
            'backend/config/main-local.php',
            'frontend/config/main-local.php',
            'api/config/main-local.php',

        ],
    ],
    'Production' => [
        'path' => 'prod',
        'setWritable' => [
            'backend/runtime',
            'backend/web/assets',
            'frontend/runtime',
            'frontend/web/assets',
            'api/runtime',
            'api/web/assets',
        ],
        'setExecutable' => [
            'yii',
        ],
        'setCookieValidationKey' => [
            'backend/config/main-local.php',
            'frontend/config/main-local.php',
            'api/config/main-local.php',

        ],
    ],];
  1. 还是environments目录下,dev和prod目录下,都复制一份backend或者frontend,并改名为api
  2. common/config/bootstrap.php 里添加
Yii::setAlias('@api', dirname(dirname(__DIR__)) . '/api');
  1. 把api应用里的,配置文件 相关配置改为 api 的。比如
    config/main.php 中
'controllerNamespace' => 'api\controllers',

批量更改图片为姓名

下面是批量修改文件名为姓名的小应用:

import os
import random


def random_name_picture(image_folder, name_file):
    # 读取姓名文件
    with open(name_file, 'r', encoding='utf-8') as f:
        names = f.read().splitlines()

    # 获取图片文件列表
    image_files = [f for f in os.listdir(image_folder) if f.lower().endswith(('.png', '.jpg', '.jpeg'))]

    # 打乱姓名顺序
    random.shuffle(names)

    # 为图片重命名
    for i, image_file in enumerate(image_files):
        if i < len(names):
            old_path = os.path.join(image_folder, image_file)
            file_extension = os.path.splitext(image_file)[1]
            new_name = f"{names[i]}{file_extension}"
            new_path = os.path.join(image_folder, new_name)
            os.rename(old_path, new_path)
            print(f"将 {image_file} 重命名为 {new_name}")
        else:
            print("姓名数量不足,无法继续重命名图片。")
            break


if __name__ == "__main__":
    # 图片所在文件夹路径
    image_folder = r'C:\Users\Administrator\WPSDrive\260820601\WPS云盘\教研组\2025春\网络学习截图\高二数学备课组'
    # 姓名文件路径
    name_file = r'C:\Users\Administrator\WPSDrive\260820601\WPS云盘\教研组\2025春\网络学习截图\高二数学备课组\list.txt'
    random_name_picture(image_folder, name_file)
    

七牛云:开启智能音视频新征程,引领行业无限可能

在数字化浪潮汹涌澎湃的今天,音视频技术已经成为众多行业发展的关键驱动力。无论是企业想要高效开展线上培训、营销活动,还是社交娱乐平台追求更丰富的用户体验,亦或是智能新媒体探索创新的内容呈现方式,七牛云一站式场景化智能音视频 APaaS 都是理想之选,现在点击推广链接即可深入了解!

七牛云的实力不容小觑。服务着百万级的企业客户与开发者,EB 级的音视频数据存储规模展现出其强大的存储能力。每日数亿分钟的直播和实时互动,以及超万亿的公有云管理文件数,足以证明其在音视频领域的广泛应用和卓越表现。并且,七牛云智能接入全参 DeepSeek – R1,还支持私有化部署,现在限时领取 1000 元算力金,就能解锁满血 GPU 云服务,这为企业提供了更具性价比和定制化的选择。

七牛云提供全方位的解决方案,覆盖多个重要领域。在视频营销方面,它涵盖营销、带货、企业培训、活动直播等场景,助力企业轻松实现内容生产、直播数据与流量的闭环。想象一下,企业举办线上营销活动时,通过七牛云快速集成和接入直播服务,吸引大量潜在客户,同时利用直播数据优化后续营销策略,让营销效果事半功倍。社交娱乐领域,七牛云为移动社交娱乐平台提供一站式服务,从图片处理到音视频的点播、直播、互动,再到存储与分发,一应俱全。短视频平台可以借助七牛云的断点拍摄、分段文字特效等功能,打造更具创意和吸引力的视频内容,满足用户日益增长的娱乐需求。

视联网领域,七牛云提供从音视频云管理到场景感知分析等一系列服务。在家居视联网中,用户可以通过智能设备实现便捷的视频通话和家居监控;智慧幼教场景下,老师和家长能够实时了解孩子在园情况,保障孩子的成长。智能新媒体方面,七牛云兼顾低延时、高吞吐、高精度,为平台提供优质的音视频内容制作服务,助力新媒体在激烈的市场竞争中脱颖而出。而在充满潜力的元宇宙领域,七牛云提供虚拟数字人、虚拟空间音视频服务,助力元宇宙企业技术及应用落地,打造沉浸式虚拟空间,为用户带来前所未有的体验。

搭建场景应用也变得轻松简单,七牛云的一站式场景化音视频低代码工厂功不可没。即使没有深厚的技术背景,也能通过创建项目、选择模版和插件、自定义扩展等简单几步,快速搭建专属的音视频应用。其低门槛接入、可扩展性强、全场景支持的特点,让企业能够以更低成本和更高效率实现音视频应用的搭建和部署。同时,提供的各种音视频能力 SDK 和可视化方案配置,大幅降低了开发难度。

七牛云完备的一站式视频能力覆盖音视频生产、处理、传输、消费全流程。直播方面,拥有强大的全球化实时流网络和完善的客户端与云端服务,还能无缝切换低延时直播;点播功能集视频采集、编辑、上传等多种功能于一体,全站加速确保服务稳定,多种转码模板适配不同网络环境;实时音视频支持多种场景,自研 RTC 端到端延迟小于 200ms,还能支持万人规模的超大房间;摄像头智能分析实现直播、录制等功能一体化,配合智能多媒体服务及智能识别技术,满足多样化需求。

众多成功案例见证了七牛云的强大实力。指纹科技借助七牛云企业直播解决方案,构建了高效的直播培训平台,赋能跨境电商发展;快看漫画使用七牛短视频 SDK,获得了丰富的短视频制作功能,优化了用户体验;芒果 TV 通过七牛云一站式互动直播解决方案,创新了用户互动模式,重塑了内容生态。还有新致软件、第一昆山、享道出行、石墨文档等企业,都在七牛云的助力下取得了显著成果。

不仅如此,七牛云还提供 7×24 小时技术服务和客户全流程服务,为企业在使用过程中遇到的问题提供及时有效的支持。并且,七牛云获得了多项权威认证,如 ISO 20000、ISO 9001、ISO 27001、ISO 27701、CMMi3、可信云服务认证等,这充分证明了其产品和服务的质量与安全性。

不要再犹豫,选择七牛云,就是选择更高效、更优质、更具创新性的音视频解决方案。点击推广链接,开启你的智能音视频之旅,在数字化时代抢占先机,实现无限可能!

提取字符串中的数字

高一11班,从这个字符串的提取出数字11,可以使用以下公式

=REPLACE(REPLACE(D5,1,2,””),3,1,””)

高一1班,从这个字符串的提取出数字1,可以使用以下公式

=REPLACE(REPLACE(D4,1,2,””),2,1,””)

在原文件名前加上前缀并实现文件的批量重命名

要在原文件名前加上前缀并实现文件的批量重命名,你可以根据你所使用的操作系统选择合适的脚本语言来编写脚本。以下是在不同操作系统上实现这一功能的示例:

在 Windows 上使用 PowerShell

# 设置文件夹路径
$folderPath = "C:\path\to\your\folder"

# 设置前缀
$prefix = "prefix_"

# 获取文件夹中的所有文件
$files = Get-ChildItem -Path $folderPath

# 遍历并重命名每个文件
foreach ($file in $files) {
    # 构造新的文件名
    $newName = $prefix + $file.Name
    # 重命名文件
    Rename-Item -Path $file.FullName -NewName (Join-Path $folderPath $newName)
}

在 macOS/Linux 上使用 Shell 脚本

#!/bin/bash

# 设置文件夹路径
folder_path="/path/to/your/folder"

# 设置前缀
prefix="prefix_"

# 进入文件夹
cd "$folder_path"

# 遍历并重命名每个文件
for file in *; do
  if [ -f "$file" ]; then
    new_name="${prefix}${file}"
    mv "$file" "$new_name"
  fi
done

在 Python 中使用 os 模块

import os

# 设置文件夹路径
folder_path = '/path/to/your/folder'

# 设置前缀
prefix = 'prefix_'

# 获取文件夹中的所有文件
files = os.listdir(folder_path)

# 遍历并重命名每个文件
for file_name in files:
    if os.path.isfile(os.path.join(folder_path, file_name)):
        new_name = prefix + file_name
        os.rename(os.path.join(folder_path, file_name), os.path.join(folder_path, new_name))

注意事项

  1. 确保你有权限:在重命名文件之前,确保你有足够的权限来修改文件名。
  2. 避免命名冲突:如果添加前缀后可能导致文件名冲突(例如,原文件中已经存在以该前缀开头的文件),你需要考虑如何处理这种情况,比如检查新文件名是否已存在,或者添加额外的序号来避免冲突。
  3. 测试脚本:在正式运行脚本之前,最好在一个包含少量测试文件的文件夹中测试脚本,以确保它按预期工作。

将上述脚本中的 folder_path 或 $folderPath 替换为你的文件夹路径,将 prefix 替换为你想要添加的前缀,然后运行脚本即可。

推荐一个 GitHub 的开源电子书仓库,值得收藏

1 C 语言

2 C++

3 Java

4 Python

5 Go

6 数据结构与算法

7 计算机系统知识

8 计算机网路

9 操作系统

10 Linux

11 汇编语言

12 数据库

13 设计模式

14 前端

FTP上传文件,提示553 Can’t open that file: Permission denied

原因:

目录的所属组,所属用户属于root, 导致FTP无法上传, 修改组和所属用户为www即可

chgrp -fR www ./*
chown -fR www ./*

连接不到 ftp  了 查看了很多原因 最后 更改文件夹权限 就可以了 更改为root然后就正常连接到了 或者更改文件夹权限 就可以正常使用了