吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1818|回复: 13
上一主题 下一主题
收起左侧

[Python 原创] 百度网盘文件名合法化

[复制链接]
跳转到指定楼层
楼主
「三千世界」 发表于 2024-7-5 17:20 回帖奖励
本帖最后由 「三千世界」 于 2024-7-5 17:24 编辑

百度网盘文件名不能包含字符怎么解决?
可以使用这个脚本,将一些不合法字符去除掉。

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] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
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()

免费评分

参与人数 1吾爱币 +7 热心值 +1 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
gmingx 发表于 2024-7-11 10:21

感谢分享。使用时注意49行,这里单行就好。new_file_name = f”{clean_name(dir_name)}_{clean_name(file_name)}"
16#
fhlfxtd 发表于 2024-9-16 21:19
15#
newGuy 发表于 2024-9-16 16:35
14#
chuhua 发表于 2024-9-16 04:48
要是有exe就更好了,要不然没法用啊
13#
Dmark 发表于 2024-7-29 16:28
liaoticai 发表于 2024-7-19 08:27
百度网盘好,就是不出钱下载太慢

现在不是推出了,用闲置宽带换下载速度,我速度很快
12#
176008 发表于 2024-7-20 13:38
百度网盘好,就是不办会员下载太慢
11#
liaoticai 发表于 2024-7-19 08:27
百度网盘好,就是不出钱下载太慢
10#
yxc8218147 发表于 2024-7-13 00:14
非常感谢,这个问题竟然在这里找到解决方法了,感谢
8#
ffeiko 发表于 2024-7-10 22:50
感谢分享,方便网盘命名
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-5-25 23:14

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表