переменная python в вызове функции - PullRequest
0 голосов
/ 01 февраля 2011

Я пытаюсь создать каталог / папку в Linux с помощью Python.Я получу дату и сделаю папку.

In [65]: d = datetime.datetime.now()

In [66]: a = 'date :' + str(d)

In [67]: a
Out[67]: 'date :2011-02-01 13:05:58.642704'

In [68]: os.system('mkdir a')

Как передать переменную a в системную команду ??

Ответы [ 4 ]

3 голосов
/ 01 февраля 2011

Используйте собственный способ создания каталогов на python:

os.mkdir(a)
3 голосов
/ 01 февраля 2011

Используйте форматирование строки, чтобы добавить переменную a в строку:

os.system('mkdir %s' % a)
2 голосов
/ 01 февраля 2011

Вы уверены, что хотите назвать свой каталог 'date :2011-02-01 13:05:58.642704' со всеми этими двоеточиями и пробелами? Существует простой способ форматирования даты в другой форме, который облегчит манипулирование строками.

Например:

d = datetime.datetime.now()

a = d.strftime('date_%Y%m%d_%H%M%S_%f')
os.mkdir(a)

, которая создаст каталог с именем date_20110201_130558_642704 (подробнее о параметрах форматирования здесь ). Ваша жизнь станет проще, если вы будете управлять этим каталогом в оболочке (дважды щелкнув по его имени в выводе ls и т.

1 голос
/ 01 февраля 2011

Вы должны не использовать os.system. Используйте подпроцесс , если вам нужно вызвать внешнюю программу.

Тем не менее, нет причины звонить mkdir. Используйте функцию stdlib os.mkdir , которая делает то, что вы хотите. По возможности рекомендуется использовать stdlib. Ваш код будет не только переносимым, но и его будет легче поддерживать и читать.

Если вы настаиваете на вызове внешнего процесса:

>>> import subprocess
>>> subprocess.call(['mkdir', 'foo_bar'])  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...