Python 转换列表中的path变量时,它会打印额外的符号\\
首先,我在代码中创建了变量rootdir:Python 转换列表中的path变量时,它会打印额外的符号\\,python,python-3.x,pythonpath,Python,Python 3.x,Pythonpath,首先,我在代码中创建了变量rootdir: rootdir = r'\\001\Server\Folder1\Folder2\Folder3\Folder4' # shared drive print(rootdir) 输出: \\001\Server\Folder1\Folder2\Folder3\Folder4 # looks good ['\\\\001\\Server\\Folder1\\Folder2\\Folder3\\Folder4\\MyFile.xlsx'] # has
rootdir = r'\\001\Server\Folder1\Folder2\Folder3\Folder4' # shared drive
print(rootdir)
输出:
\\001\Server\Folder1\Folder2\Folder3\Folder4 # looks good
['\\\\001\\Server\\Folder1\\Folder2\\Folder3\\Folder4\\MyFile.xlsx'] # has extra \\
然后我将创建一个路径列表,以便可以从该位置附加文件
files = [rootdir + '\\' + 'MyFile.xlsx']
print(files)
输出:
\\001\Server\Folder1\Folder2\Folder3\Folder4 # looks good
['\\\\001\\Server\\Folder1\\Folder2\\Folder3\\Folder4\\MyFile.xlsx'] # has extra \\
我需要在函数中使用路径列表:
# function sends email
def send_mail(send_from,rcpt,subject,text ,files):
assert isinstance(send_to, list)
assert isinstance(cc, list)
assert isinstance(files, list) # files need to be a list
msg = MIMEMultipart()
现在路径有了额外的\\
为什么会发生这种情况?我如何摆脱这些\\
,以获得如下路径:
\\001\Server\Folder1\Folder2\Folder3\Folder4\MyFile.xlsx
这与打印列表的计算方式有关。列表的实际内容如您所愿
In [9]: print(files)
['\\\\001\\Server\\Folder1\\Folder2\\Folder3\\Folder4\\MyFile.xlsx']
In [10]: for file in files:
...: print(file)
...:
\\001\Server\Folder1\Folder2\Folder3\Folder4\MyFile.xlsx
这与打印列表的计算方式有关。列表的实际内容如您所愿
In [9]: print(files)
['\\\\001\\Server\\Folder1\\Folder2\\Folder3\\Folder4\\MyFile.xlsx']
In [10]: for file in files:
...: print(file)
...:
\\001\Server\Folder1\Folder2\Folder3\Folder4\MyFile.xlsx
变量文件需要转换为列表。否则,我的send_mail函数中会出现断言错误。但将其转换为列表会给我错误的路径地址。@Serdia不,不会,这只是列表的表示方式。那些额外的反斜杠实际上并不在你的字符串中。你不能打印出来检查。就像列表中没有实际的括号([])一样……哦。知道了。谢谢你们!变量文件需要转换为列表。否则,我的send_mail函数中会出现断言错误。但将其转换为列表会给我错误的路径地址。@Serdia不,不会,这只是列表的表示方式。那些额外的反斜杠实际上并不在你的字符串中。你不能打印出来检查。就像列表中没有实际的括号([])一样……哦。知道了。谢谢你们!