2015-12-16 23 views
0

我有一个目录名的列表,并希望在它之前添加一个固定路径。 我知道,它可以通过两种方式完成,1)使用for循环和2)使用map()函数。我如何在map()中使用os.path.join

我能够使用循环做的事:在列表中的每个目录名和目录名:

dirNames = ['dir1', 'dir2'] 
dirsFullPath = [os.path.join('C:\\', dir) for dir in dirNames] 

但地图如何传递两个参数,即“\ C”。

dirsFullPath = map(os.path.join, dirNames) # so where to put 'C:\\' in this line. 
+0

没有这个问题是完全不同的。虽然我们可以使用'functools.partial'完成目标,但这并不复杂。 – Abhinav

+0

@ a_bhi_9是什么让你认为*这个问题是完全不同的*? – styvane

+0

@ user3100115,user3100115:其中一个答案来自“如何执行多个参数来映射函数,其中一个在python中保持不变”?解决了我的问题,但在这里回答“如何在Python中绑定常量参数?”非常复杂。你能删除第二个链接吗? – Luminos

回答

2

你需要传递函数和迭代来map,应用这样简单,你可以依靠lambda功能和迭代是您的清单。

import os 
dirNames = ['dir1', 'dir2'] 
path_maker = lambda dir_name: os.path.join("C:\\", dir_name) 
map(path_maker, dirNames) 

参考的map作进一步详细的文档,https://docs.python.org/2/library/functions.html#map

+0

@ a_abhi_9:非常感谢! – Luminos