百度网盘文件名合法化
本帖最后由 「三千世界」 于 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。
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).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()
感谢分享。使用时注意49行,这里单行就好。new_file_name = f”{clean_name(dir_name)}_{clean_name(file_name)}"
百度网盘好,就是下载太慢 很不错,适合企业大户 要是有exe就更好了,要不然没法用啊 liaoticai 发表于 2024-7-19 08:27
百度网盘好,就是不出钱下载太慢
现在不是推出了,用闲置宽带换下载速度,我速度很快 百度网盘好,就是不办会员下载太慢
百度网盘好,就是不出钱下载太慢 非常感谢,这个问题竟然在这里找到解决方法了,感谢 感谢分享,方便网盘命名
页:
[1]
2