Извлечь имя файла из пути, независимо от того, какой формат os / path

Какую библиотеку Python я могу использовать для извлечения имен файлов из путей, независимо от того, что может быть в операционной системе или в формате пути? Например, я хотел бы, чтобы все эти пути вернули мне c : a/b/c/ a/b/c \a\b\c \a\b\c\ a\b\c a/b/../../a/b/c/ a/b/../../a/b/c

Проблема с многопоточным подключением к приложениям и сокетам Python

Я изучаю проблему с приложением Python, запущенным на машине Ubuntu с 4G ОЗУ. Инструмент будет использоваться для аудита серверов (мы предпочитаем рулон наших собственных инструментов). Он использует потоки для подключения к большому количеству серверов, и многие из TCP-соединений терпят неудачу. Однако, если я добавлю задержку в 1 секунду между началом каждого потока, то большинство соединений […]

Для чего используются методы класса в Python?

Я преподаю сам Python, и мой последний урок состоял в том, что Python не является Java , и поэтому я просто потратил некоторое время, превратив все мои методы класса в функции. Теперь я понимаю, что мне не нужно использовать методы класса для того, что я сделал бы со static методами в Java, но теперь я […]

Лучшая практика для Python

Есть ли проблема обслуживания производительности или кода с использованием assert как части стандартного кода вместо использования его только для целей отладки? Является assert x >= 0, 'x is less than zero' лучше или хуже if x < 0: raise Exception, 'x is less than zero' Кроме того, есть ли способ установить бизнес-правило, например, if x […]

Есть ли причина, по которой строки Python не имеют метода длины строки?

Я знаю, что у python есть функция len() которая используется для определения размера строки, но мне было интересно, почему это не метод строкового объекта. Обновить Хорошо, я понял, что смущенно ошибался. __len__() – фактически метод строкового объекта. Кажется странным видеть объектно-ориентированный код в Python, используя функцию len на строковых объектах. Кроме того, также странно видеть […]

Подпроцесс Python / Popen с измененной средой

Я считаю, что запуск внешней команды со слегка измененной средой – очень распространенный случай. Вот как я это делаю: import subprocess, os my_env = os.environ my_env["PATH"] = "/usr/sbin:/sbin:" + my_env["PATH"] subprocess.Popen(my_command, env=my_env) У меня есть ощущение, что есть лучший способ; это выглядит хорошо?

Получение ввода пароля командной строки в Python

Вы знаете, как в Linux, когда вы пытаетесь использовать материал Sudo, он говорит вам ввести пароль, и по мере ввода ничего не отображается в окне терминала (пароль не отображается)? Есть ли способ сделать это в Python? Я работаю над скриптом, который требует такой конфиденциальной информации и хотел бы, чтобы он был скрыт, когда я его […]

Django filter queryset __in для * каждого * элемента в списке

Допустим, у меня есть следующие модели class Photo(models.Model): tags = models.ManyToManyField(Tag) class Tag(models.Model): name = models.CharField(max_length=50) В представлении у меня есть список с активными фильтрами, называемыми категориями . Я хочу фильтровать объекты фото, которые имеют все теги в категориях . Я пытался: Photo.objects.filter(tags__name__in=categories) Но это соответствует любому элементу в категориях, а не во всех элементах. […]

StringIO в python3

Я использую python 3.2.1, и я не могу импортировать модуль StringIO . Я использую io.StringIO и он работает, но я не могу использовать его с genfromtxt numpy следующим образом: x="1 3\n 4.5 8" numpy.genfromtxt(io.StringIO(x)) Я получаю следующую ошибку: TypeError: Can't convert 'bytes' object to str implicitly и когда я пишу import StringIO он говорит, что […]

Как сделать IP-адрес ноутбука matplotlib

Я пытаюсь использовать IPython ноутбук на MacOS X с Python 2.7.2 и IPython 1.1.0. Я не могу получить графику matplotlib, чтобы отобразить встроенную. import matplotlib import numpy as np import matplotlib.pyplot as plt %matplotlib inline Я также попробовал %pylab inline и аргументы командной строки –pylab=inline но это не имеет значения. x = np.linspace(0, 3*np.pi, 500) […]

Python - лучший язык программирования в мире.