我有一个在这个循环中形成的文件路径列表:
for each_file in os.listdir(my_dir):
fp = os.path.abspath(os.path.join(my_dir, each_file))
if fp.endswith('.txt'):
my_list += [fp]
fp
看起来像H:\Dir\1. DirOne\2. DirTwo\file.txt
然后在稍后的函数中,我将my_list
作为参数传递并进行调试我可以打印其中的每个项目,其中有效的文字文件路径(\
而不是\\
})打印。
但是,当我将每个路径发送到arcpy.dosomething()
[不是真正的功能顺便说一句]时,它会出错并打印文件路径,但有些\
已成为奇数字符({{1} })。我知道这种情况正在发生,因为有问题的˥
充当转义字符,因为文件路径中的真值类似于\
。那些\2. DirName\3. AnotherDir
就是问题所在。
现在要对此进行测试,我可以使用\#.
执行单个文件路径,但如何使用列表值复制此文件:
r'file path'
我已尝试for path in my_list:
# I want to mimic the use of r' ' against the iterable
arcpy.dosomething(r'path')
,但path.replace("\\", "\\\\")
仍变为奇数符号(\#.
)。我甚至尝试过:
˥
&安培;
path = r''+path+''
如果我使用find = r'\\'
replace = r'\\\\'
path = re.sub(find, replace, path)
,我会更接近我的需要:
repr()
所有产生的结果都与Unicode字符相同。