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ペアにします。1番目の要素の場合は要素を「x」に置き換え、それ以外の場合はそのままにします。x.split(os.sep)'x' if idx == 1 else element

于 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 に答える