标签: python

如何在Python中获取计算机的完全限定域名?

我知道我可以使用platform.node()来获取我的计算机的网络名称:

>>> import platform
>>> platform.node()
'MyComputerName'
Run Code Online (Sandbox Code Playgroud)

但我真正想要的是类似于以下内容:

>>> get_full_network_domain_name()
'MyComputerName.it.na.mycompany.com'
Run Code Online (Sandbox Code Playgroud)

这样的事情存在吗?

python subdomain dns networking

41
推荐指数
1
解决办法
3万
查看次数

检查字符串是否为十六进制

我知道最简单的方法是使用正则表达式,但我想知道是否有其他方法可以进行此检查.

我为什么需要这个?我正在编写一个Python脚本,从SIM卡读取短信(SMS).在某些情况下,十六进制消息到达,我需要为它们做一些处理,所以我需要检查收到的消息是否是十六进制.

当我发送以下短信时:

Hello world!
Run Code Online (Sandbox Code Playgroud)

我的剧本收到了

00480065006C006C006F00200077006F0072006C00640021
Run Code Online (Sandbox Code Playgroud)

但在某些情况下,我会收到正常的短信(不是十六进制).所以我需要做一个if hex控件.

我使用的是Python 2.6.5.

更新:

这个问题的原因是,(某种程度上)我发送的消息是在接收hex到运营商发送的消息(信息消息和广告)时作为普通字符串接收的.所以我决定进行检查并确保我以正确的字符串格式显示消息.

一些额外的细节:我使用华为3G调制解调器和PyHumod从SIM卡读取数据.

可能是我的最佳解决方案:

处理这种字符串的最好方法是使用a2b_hex(aka unhexlify)和utf-16 big endian encoding(如@JonasWielicki所提到的):

from binascii import unhexlify  # unhexlify is another name of a2b_hex

mystr = "00480065006C006C006F00200077006F0072006C00640021"
unhexlify(mystr).encode("utf-16-be")
>> u'Hello world!'
Run Code Online (Sandbox Code Playgroud)

python hex

41
推荐指数
4
解决办法
7万
查看次数

Python:按索引过滤列表

在Python中,我有一个元素aList列表和一个索引列表myIndices.有什么方法可以一次性检索所有项目中aList的值作为索引myIndices吗?

例:

>>> aList = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> myIndices = [0, 3, 4]
>>> aList.A_FUNCTION(myIndices)
['a', 'd', 'e']
Run Code Online (Sandbox Code Playgroud)

python indexing list filter

41
推荐指数
5
解决办法
4万
查看次数

无法使用有效的用户名和密码登录django管理页面

我无法登录django管理页面.当我输入有效的用户名和密码时,它只会再次显示登录页面,没有错误消息

这个问题在django常见问题解答中,但我已经在那里找到答案,仍然无法通过初始登录屏幕.

我在ubuntu 12.04上使用django 1.4和apache2以及modwsgi.

我已经确认我在admin.py文件中注册了admin ,确保在添加后确认syncdb INSTALLED_APPS.当我输入了错误的密码我DO得到一个错误,所以我的管理员用户进行认证,只是没有在进行管理页面.

我已经尝试过设置SESSION_COOKIE_DOMAIN机器的IP和无.(确认cookie域显示为Chrome中机器的IP)

另外,检查用户是否通过shell进行身份验证:

>>> from django.contrib.auth import authenticate
>>> u = authenticate(username="user", password="pass")
>>> u.is_staff
True
>>> u.is_superuser
True
>>> u.is_active 
True
Run Code Online (Sandbox Code Playgroud)

尝试使用IE8和chrome canary登录,两者都会导致返回登录屏幕.

还有别的什么我想念????

settings.py

...
MIDDLEWARE_CLASSES = (
    'django.middleware.gzip.GZipMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.middleware.transaction.TransactionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
)
AUTHENTICATION_BACKENDS = ('django.contrib.auth.backends.ModelBackend',)
INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.admin',    
    'django.contrib.staticfiles',
    'django.contrib.gis',
    'myapp.main',
)

SESSION_EXPIRE_AT_BROWSER_CLOSE = True
SESSION_SAVE_EVERY_REQUEST = True
SESSION_COOKIE_AGE = 86400 # …
Run Code Online (Sandbox Code Playgroud)

python django mod-wsgi login admin

41
推荐指数
3
解决办法
4万
查看次数

如何在scipy/matplotlib中绘制和注释层次聚类树形图

我使用的是dendrogramscipy使用绘制层次聚类matplotlib如下:

mat = array([[1, 0.5, 0.9],
             [0.5, 1, -0.5],
             [0.9, -0.5, 1]])
plt.subplot(1,2,1)
plt.title("mat")
dist_mat = mat
linkage_matrix = linkage(dist_mat,
                         "single")
print "linkage2:"
print linkage(1-dist_mat, "single")
dendrogram(linkage_matrix,
           color_threshold=1,
           labels=["a", "b", "c"],
           show_leaf_counts=True)
plt.subplot(1,2,2)
plt.title("1 - mat")
dist_mat = 1 - mat
linkage_matrix = linkage(dist_mat,
                         "single")
dendrogram(linkage_matrix,
           color_threshold=1,
           labels=["a", "b", "c"],
           show_leaf_counts=True)
Run Code Online (Sandbox Code Playgroud)

我的问题是:第一,为什么mat1-mat在这里给同一聚类?第二,如何使用树的每个分支来注释距离,dendrogram以便可以比较节点对之间的距离?

最后似乎show_leaf_counts忽略了标志,有没有办法打开它,以便显示每个类中的对象数量?谢谢.在此输入图像描述

python numpy matplotlib dendrogram scipy

41
推荐指数
2
解决办法
4万
查看次数

在视图中强制应用程序/ json MIME类型(Flask)

我无法弄清楚如何强制application/jsonFlask中的视图的MIME类型.这是一个简单的视图,我为了演示目的而将它们拼凑在一起:

@app.route("/")
def testView():
    ret = '{"data": "JSON string example"}'
    return ret
Run Code Online (Sandbox Code Playgroud)

JSON字符串(保存在变量中ret)是从其他地方收集的(使用来自其他程序的stdout subprocess),所以我不能使用jsonifyFlask提供的.

我已经看过"返回Json"文档这个 Stackoverflow问题,但到目前为止我还没有运气.我一直在寻找一段时间并将继续搜索,但我想我会问这里以防万一有人遇到过这个问题.

谢谢.


请参阅以下答案

解决方案:

@app.route("/")
def testView():
    ret = '{"data": "JSON string example"}'

    resp = Response(response=ret,
                    status=200,
                    mimetype="application/json")

    return resp
Run Code Online (Sandbox Code Playgroud)

我发现这个网站很有用:用Python和Flask实现RESTful Web API

python json flask mime-types

41
推荐指数
2
解决办法
4万
查看次数

python中的Pragma

我正在阅读bottle.py源代码.它是一个Web框架,只有3000多行python代码.非常酷.

我发现了一些这样的代码:

class ServerAdapter(object):
    quiet = False
    def __init__(self, host='127.0.0.1', port=8080, **config):
        self.options = config
        self.host = host
        self.port = int(port)

    def run(self, handler): # pragma: no cover
        pass
    ... 
Run Code Online (Sandbox Code Playgroud)

什么# pragma: no cover意思?我找不到有关pragmapython文档中语法的任何介绍.

python pragma

41
推荐指数
2
解决办法
1万
查看次数

如何为WTForms SelectField设置默认值?

当尝试使用WTForms设置SelectField的默认值时,我将值传递给'default'参数,就像这样.

class TestForm(Form):
  test_field = SelectField("Test: ", choices=[(1, "Abc"), (2, "Def")], default=2)
Run Code Online (Sandbox Code Playgroud)

我也试过以下.

class TestForm(Form):
  test_field = SelectField("Test: ", choices=[(1, "Abc"), (2, "Def")], default=(2, "Def"))
Run Code Online (Sandbox Code Playgroud)

既不将默认的选定字段设置为"Def".这适用于其他类型的字段,如TextField.如何设置SelectField的默认值?'

python flask wtforms

41
推荐指数
5
解决办法
4万
查看次数

如何摆脱BeautifulSoup用户警告?

安装BeautifulSoup之后,每当我在cmd中运行我的Python时,就会出现这个警告.

D:\Application\python\lib\site-packages\beautifulsoup4-4.4.1-py3.4.egg\bs4\__init__.py:166:
UserWarning: No parser was explicitly specified, so I'm using the best
available HTML parser for this system ("html.parser"). This usually isn't a
problem, but if you run this code on another system, or in a different
virtual environment, it may use a different parser and behave differently.

To get rid of this warning, change this:

 BeautifulSoup([your markup])

to this:

 BeautifulSoup([your markup], "html.parser")
Run Code Online (Sandbox Code Playgroud)

我没有理解为什么它出来以及如何解决它.

python beautifulsoup user-warning

41
推荐指数
4
解决办法
5万
查看次数

使用pip,Mac OSX安装tensorflow的文件夹在哪里?

刚刚使用命令使用pip安装了tensorflow:

$ pip install tensorflow

Tensorflow"入门"中,他们有一个卷积神经网络的例子

$ python tensorflow/models/image/mnist/convolutional.py

使用pip安装时该目录位于何处?

python macos tensorflow

41
推荐指数
1
解决办法
7万
查看次数