我有这段代码来改变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中可能还有哪些其他选项?
答案 0 :(得分: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)
的每个元素与其索引配对。如果元素是第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:]