Как получить/установить логический путь к каталогу в Python

Что вы делали, это

В вашем адаптере

public CarListAdapter(Context context , ArrayList<CarDetail> items) {

    this.context = context;
    this.items = items;

}

в вашем фрагменте

adapter = new CarListAdapter(getActivity(),ServiceCarListFragment.this.carDetailList);

Надеюсь, вы будете использовать FragmentActivity

Вам нужно позвонить

adapter = new CarListAdapter(YOUR_ACTIVITY_CONTEXT, carDetailList);

, где YOUR_ACTIVITY_CONTEXT будет вашим FragmentActivity

10
задан abbot 9 October 2009 в 20:35
поделиться

1 ответ

Базовая операционная система / оболочка сообщает о реальных путях к Python.

Так, действительно нет никакого пути вокруг этого с тех пор os.getcwd() перенесенный вызов к Библиотеке C getcwd() функция.

Существуют некоторые обходные решения в духе того, который Вы уже знаете, который запускается pwd.

Другой включил бы использование os.environ['PWD']. Если это, environmnent переменная установлена, можно сделать некоторых getcwd функция, которая уважает его.

Решение ниже комбинирует обоих:

import os
from subprocess import Popen, PIPE

class CwdKeeper(object):
    def __init__(self):
        self._cwd = os.environ.get("PWD")
        if self._cwd is None: # no environment. fall back to calling pwd on shell
           self._cwd = Popen('pwd', stdout=PIPE).communicate()[0].strip()
        self._os_getcwd = os.getcwd
        self._os_chdir = os.chdir

    def chdir(self, path):
        if not self._cwd:
            return self._os_chdir(path)
        p = os.path.normpath(os.path.join(self._cwd, path))
        result = self._os_chdir(p)
        self._cwd = p
        os.environ["PWD"] = p
        return result

    def getcwd(self):
        if not self._cwd:
            return self._os_getcwd()
        return self._cwd

cwd = CwdKeeper()
print cwd.getcwd()
# use only cwd.chdir and cwd.getcwd from now on.    
# monkeypatch os if you want:
os.chdir = cwd.chdir
os.getcwd = cwd.getcwd
# now you can use os.chdir and os.getcwd as normal.
13
ответ дан 3 December 2019 в 23:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: