百度网盘文件名合法化

查看 33|回复 1
作者:「三千世界」   
百度网盘文件名不能包含字符怎么解决?
可以使用这个脚本,将一些不合法字符去除掉。
1、检查上传的文件中名或文件夹中是否真的含有这些字符\/:*?"|,一般不会存在的,因为电脑系统会自动拒绝掉这些字符。2、文件名称以及文件夹名称的开头或结尾是否含有空格,一定要注意文件夹名称前后是不可以用空格的,文件名称可以用但一般尽量不要用,不合常规。3、遇到这个问题,可以尝试更改下文件夹名称和文件名称成普通名称,如果改好后没有问题,那么说明原名称是有问题的。4、直接下载最新的百度网盘,最新版本经测试没有发现这类问题。文件名不能包含/:*?,这些字符是英文状态下的,Windows操作系统不让我们用,我们可以用中文状态下的对应字符即可,注意要设置成全角和中字标点状态下输入字符才可以的。文件名不能包含的字符有:”(双引号)、*(星号)、(大于)、?(问号)、\(反斜杠)、|(竖线)、/ (正斜杠)、 : (冒号),这些字符操作系统是不让你用在文件名称中的,如果使用就会重命名无效,并且弹出警示框。文件名除了不能用的特殊字符外,还能一些特定的系统保留名称也是不能用的,它们是:CON、PRN、AUX、NUL、COM1、COM2、COM3、COM4、COM5、COM6、COM7、COM8、COM9、LPT1、LPT2、LPT3、LPT4、LPT5、LPT6、LPT7、LPT8 、 LPT9。

[Python] 纯文本查看 复制代码import os
import re
from pathlib import Path
# 定义一个函数来清理文件名和目录名
def clean_name(name):
    # 保留中文、英文、数字、点、破折号、下划线
    pattern = re.compile(r'[^\u4e00-\u9fa5a-zA-Z0-9。#《》._-:+()()@]+')
    return pattern.sub('', name)
# 递归遍历目录并清理目录名
def clean_directories(path):
    for root, dirs, files in os.walk(path, topdown=False):
        for dir_name in dirs:
            cleaned_name = clean_name(dir_name)
            try:
                os.rename(os.path.join(root, dir_name),
                          os.path.join(root, cleaned_name))
            except OSError as e:
                print(f"Error renaming directory {dir_name}: {e}")
# 递归遍历目录并清理文件名
def clean_files(path):
    for root, dirs, files in os.walk(path):
        for file_name in files:
            cleaned_name = clean_name(file_name)
            try:
                os.rename(os.path.join(root, file_name),
                          os.path.join(root, cleaned_name))
            except OSError as e:
                print(f"Error renaming file {file_name}: {e}")
# 递归遍历目录并重命名图片文件
def rename_images(path):
    image_extensions = ['.png', '.jpg', '.jpeg',
                        '.gif', '.bmp', '.tiff', '.svg']
    for root, dirs, files in os.walk(path):
        for file_name in files:
            extension = os.path.splitext(file_name)[1].lower()
            if extension in image_extensions:
                dir_name = Path(root).name
                new_file_name = f"{clean_name(dir_name)}_{
                    clean_name(file_name)}"
                try:
                    os.rename(os.path.join(root, file_name),
                              os.path.join(root, new_file_name))
                except OSError as e:
                    print(f"Error renaming image {file_name}: {e}")
# 主函数
def main():
    current_dir = os.getcwd()
    # 第一次遍历:清理目录名
    clean_directories(current_dir)
    # 第二次遍历:清理文件名
    clean_files(current_dir)
    # 第三次遍历:重命名图片文件
    rename_images(current_dir)
if __name__ == "__main__":
    main()

文件名, 遍历

zjtzjt   

感谢分享,方便网盘命名
您需要登录后才可以回帖 登录 | 立即注册

返回顶部