将列表的元素连接到路径中

问题描述 投票:0回答:2

我有一个列表,我需要将元素连接起来形成一条路径。 os.join.path 似乎不起作用。该列表获取为:

    file_path.split("\\")[:-1]

返回:

    ['L:', 'JM6', 'jm6', 'test', 'turb', 'results', 'v6.2', 'examples']

使用:

   print(os.path.join(file_path.split("\\")[:-1]))

返回完全相同的列表,而不将其加入路径:

    ['L:', 'JM6', 'jm6', 'test', 'turb', 'results', 'v6.2', 'examples']

使用:

   print(os.path.join(os.path.sep, file_path.split("\\")[:-1]))

返回错误:

   print(os.path.join(os.path.sep, file_path.split("\\")[:-1]))
   File "C:\Python\lib\ntpath.py", line 73, in join
      elif isabs(b):
   File "C:\Python\lib\ntpath.py", line 58, in isabs
      return s != '' and s[:1] in '/\\'
 TypeError: 'in <string>' requires string as left operand, not list

谢谢

filepath python-2.6 os.path
2个回答
4
投票

os.path.join() 不接受列表作为参数,它需要多个参数。

使用 *(“splat”运算符)应该可以:

list=['L:', 'JM6', 'jm6', 'test', 'turb', 'results', 'v6.2', 'examples']
os.path.join(*list)

0
投票

2023年,如果你更喜欢pathlib,你可以这样做

from pathlib import Path

mylist = ['L:', 'JM6', 'jm6', 'test', 'turb', 'results', 'v6.2', 'examples']
new_path = Path(*mylist)

对于

PosixPath('L:/JM6/jm6/test/turb/results/v6.2/examples')

(如果您使用的是 Windows,则为 Windows 路径)

str(Path(*mylist))

对于 'L:/JM6/jm6/test/turb/results/v6.2/examples'

© www.soinside.com 2019 - 2024. All rights reserved.