2

我有这个代码来更改 python 中的目录信息。我想将 '/a/b/c' 更改为 '/x/b/c'。

import os

x = "/a/b/c"
y = x.split(os.sep)
y[1] = 'x'
os.sep.join(y)

现在我只想知道python是否可以使它成为单线。我不能简单地使用os.sep.join(x.split(os.sep)[1] = 'x')它,因为它会导致语法错误。python中的其他选项可能是什么?

4

3 回答 3

3
os.sep.join('x' if idx == 1 else element
            for idx, element in enumerate(x.split(os.sep)))

结果:

'/x/b/c'

说明:enumerate将 的每个元素x.split(os.sep)与其索引配对。'x' if idx == 1 else element如果它是第 1 个元素,则用 'x' 替换该元素,否则保持原样。

于 2012-12-28T15:02:36.430 回答
2

这可能是相当低效的:

y = os.sep.join([x.split(os.sep)[0]] + ['x'] + x.split(os.sep)[2:])
于 2012-12-28T15:03:01.377 回答
0

这似乎也有效:

y = os.sep + 'x'+ x[2:]
于 2012-12-28T15:20:40.253 回答