https://blog.csdn.net/Homewm/article/details/102935965
Linux命令使用时路径存在空格、特殊符号(如-、@等等)如何处理呢?
再如可以转义的字符包括:"?"(问号), "*"(星号), " "(空格), "$"(货币符), "&"(逻辑符), "( )"(英文括号)等等。
(1)Linux路径约定
在Linux下可以使用长文件名和目录名,可以给它们取任何名称,但是必须遵守以下规则:
☆除了/外,所有的字符都可以;
☆有些字符最好不用,如空格符、制表符、退格符和以下字符:? @ # $ & ( ) | ' ' " " 等(其中,/ 号已经在第一条被严格禁止了,()是英文括号;
☆避免使用+-或.作为普通文件名的第一个字符(在Linux下以.开头的文件是属于隐藏文件;
☆和Windows文件命名不一样的是,在Linux下文件名大小写敏感。
☆另外,尽量避免使用中文和中文符号;
解决办法
路径加上一个双引号
将每一个存在特殊符号的位置,都使用转义符“”进行转义,你不知道你的列表里是否包含了所有不能处理的特殊字符,以及字符的位置,修改后是否会引发新的问题。因此不是很建议采用此种方法。
special_symbol = ["?", "*", "@", "#", "$", "&", "%", "(", ")", " ", ""]