Выберите файл из каталога файлов python [duplicate]

Это легко объясняется:

  1. Объявление функции (класс и т. д.) выполняется только один раз, создавая все объекты значения по умолчанию
  2. , все передается по ссылке

Итак:

def x(a=0, b=[], c=[], d=0):
    a = a + 1
    b = b + [1]
    c.append(1)
    print a, b, c
  1. a не изменяется - каждый вызов назначения создает новый объект int - печатается новый объект
  2. b не изменяется - новый массив создается из значения по умолчанию и печатается
  3. c изменения - операция выполняется на одном и том же объекте - и печатается
149
задан astay13 23 November 2011 в 22:06
поделиться

6 ответов

Вы можете использовать модуль os.

>>> import os
>>> os.getcwd()
'/home/user'
>>> os.chdir("/tmp/")
>>> os.getcwd()
'/tmp'

Но если речь идет о поиске других модулей: вы можете установить переменную среды, называемую PYTHONPATH, под Linux будет как

export PYTHONPATH=/path/to/my/library:$PYTHONPATH

Затем интерпретатор также ищет это место для модулей import ed.

edit

В Windows:

set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib

(снято из http://docs.python.org/using/windows.html )

edit 2

... и даже лучше: используйте virtualenv и virtualenv_wrapper, это позволит вам создать среду разработки, в которой вы можете добавлять пути к модулю по своему усмотрению (add2virtualenv) без загрязнения вашей установки или «нормальной» рабочей среды.

http://virtualenvwrapper.readthedocs.org/en/latest/command_ref.html

214
ответ дан wal-o-mat 22 August 2018 в 05:02
поделиться
  • 1
    вы правы, чтобы изменить свой вопрос, чтобы добавить предложение о PYTHONPATH, но обратите внимание, что OP указывает Windows ... – simon 23 November 2011 в 22:13
  • 2
    И в чем проблема с PYTHONPATH под Windows? Но я исправил свой ответ. – wal-o-mat 23 November 2011 в 22:16
  • 3
    Должен ли я устанавливать PYTHONPATH в командной строке Windows или в оболочке Python? – astay13 23 November 2011 в 22:17
  • 4
    @ astray13: У вас также есть возможность игнорировать переменную окружения и вместо этого добавлять к sys.path внутри вашего скрипта. – Steven Rumbalski 23 November 2011 в 22:31
  • 5
    @ astay13: не устанавливайте PYTHONPATH глобально, если у вас установлено более одного Python (или у вас установлены программы, связывающие Python с ними - другими словами, вы никогда не узнаете): он может нарушить установку в таинственные способы – jfs 22 April 2014 в 05:21

Если вы import os, вы можете использовать os.getcwd для получения текущего рабочего каталога, и вы можете использовать os.chdir для изменения своего каталога

4
ответ дан deontologician 22 August 2018 в 05:02
поделиться

Самый простой способ изменить текущий рабочий каталог на python - использовать пакет «os». Ниже приведен пример для компьютера Windows:

#import the os package
import os
# Confirm the current working directory 
os.getcwd()
# use '\\' while chaning the directory 
os.chdir("C:\\user\\foldername")
1
ответ дан sambeet 22 August 2018 в 05:02
поделиться
  • 1
    Как это отличается от принятого ответа? – Iceman 7 June 2017 в 08:43
  • 2
    использование "\\" и уточнение о компьютере Windows. Но я согласен, что принятый ответ более наглядный. – sambeet 14 June 2017 в 12:00
12
ответ дан simon 22 August 2018 в 05:02
поделиться

Изменение текущего каталога не является способом поиска модулей в Python.

Скорее, см. документы для Путь поиска модуля для того, как Python находит, какой модуль import.

Вот соответствующий бит из секции Standard Modules :

Переменная sys.path представляет собой список строк, который определяет интерпретатор путь поиска для модулей. Он инициализируется путём по умолчанию, взятым из переменной окружения PYTHONPATH или из встроенного значения по умолчанию, если PYTHONPATH не установлен. Вы можете изменить его, используя стандартные операции с списком: >>> import sys >>> sys.path.append('/ufs/guido/lib/python')

В ответ на ваш исходный вопрос о получении и настройке текущего каталога:

>>> help(os.getcwd)

getcwd(...)
    getcwd() -> path

    Return a string representing the current working directory.

>>> help(os.chdir)

chdir(...)
    chdir(path)

    Change the current working directory to the specified path.
4
ответ дан Steven Rumbalski 22 August 2018 в 05:02
поделиться
>>> import os
>>> os.system('cd c:\mydir')

На самом деле, os.system() может выполнить любую команду, которую может выполнить команда Windows, а не только изменить каталог.

7
ответ дан Tim Cooper 22 August 2018 в 05:02
поделиться
  • 1
    Файл & quot; & lt; stdin & gt ;, строка 1 os.system ('cd c: \ Users \ Ajeya \ Documents \') ^ СинтаксисError: EOL во время сканирования строкового литерала – AAI 4 September 2016 в 00:32
Другие вопросы по тегам:

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