使用python通过单行代码更改目录信息

时间:2012-12-28 14:56:16

标签: python

我有这段代码来改变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中可能还有哪些其他选项?

3 个答案:

答案 0 :(得分:3)

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

结果:

'/x/b/c'

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

答案 1 :(得分:2)

这可能效率很低:

y = os.sep.join([x.split(os.sep)[0]] + ['x'] + x.split(os.sep)[2:])

答案 2 :(得分:0)

这似乎也有效:

y = os.sep + 'x'+ x[2:]