我试图替换任何大写字母的实例,它们在一个字符串中重复两次,并在小写字母中包含该字母的单个实例.我使用以下正则表达式,它能够匹配重复的大写字母,但我不确定如何使被替换的字母小写.
import re
s = 'start TT end'
re.sub(r'([A-Z]){2}', r"\1", s)
>>> 'start T end'
Run Code Online (Sandbox Code Playgroud)
如何制作"\ 1"小写字母?我不应该使用正则表达式来执行此操作吗?
我正在使用BeautifulSoup和Requests抓取一些网站.我正在检查的页面中有一个数据位于<script language="JavaScript" type="text/javascript">标记内.它看起来像这样:
<script language="JavaScript" type="text/javascript">
var page_data = {
"default_sku" : "SKU12345",
"get_together" : {
"imageLargeURL" : "http://null.null/pictures/large.jpg",
"URL" : "http://null.null/index.tmpl",
"name" : "Paints",
"description" : "Here is a description and it works pretty well",
"canFavorite" : 1,
"id" : 1234,
"type" : 2,
"category" : "faded",
"imageThumbnailURL" : "http://null.null/small9.jpg"
......
Run Code Online (Sandbox Code Playgroud)
有没有办法可以page_data在此脚本标记中的变量中创建python字典或json对象?那会比使用BeautifulSoup获得价值更好.
我有一个Ubuntu linux系统充当网关系统,上面有两个接口.一个接口用于本地网络,一个接口用于Internet.我可以毫无问题地通过它来路由流量.我使用两个iptables规则来转发内部接口的出站流量:
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface eth1 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
我现在需要创建一个iptables规则,过滤掉并重定向所有tcp端口80和443流量,通过eth1接口离开我的网络,并将其发送到驻留在tcp端口9090上的环回接口上的代理服务器.
我一直在寻找SO,但我找不到一个有效的例子.有没有一种有效的方法来做到这一点?
我是python的新手,我试图通过python的imaplib和电子邮件解析来自gmail的电子邮件.它工作得很好,但我遇到了电子邮件附件的问题.
我想从电子邮件中解析出所有明文,同时忽略可能作为辅助内容类型插入的任何HTML,同时还删除并保存所有其他附件.我一直在尝试以下方面:
...imaplib connection and mailbox selection...
typ, msg_data = c.fetch(num, '(RFC822)')
email_body = msg_data[0][1]
mail = email.message_from_string(email_body)
for part in mail.walk():
if part.get_content_type() == 'text/plain':
body = body + '\n' + part.get_payload()
else:
continue
Run Code Online (Sandbox Code Playgroud)
这是我最初尝试只接收电子邮件的明文部分,但当有人发送带有文本附件的电子邮件时,文本文件的内容会显示上面的"body"变量.
有人能告诉我如何在忽略有时存在的辅助HTML的同时提取电子邮件的明文部分,同时还将所有其他类型的文件附件保存为文件?如果这没有多大意义,我会道歉.如果需要,我会更详细地更新问题.
我一直致力于创建一个python markdown扩展,当使用自定义标记时,它将在我的django项目中插入一个图库.实际的扩展是有效的,但扩展返回的HTML都是编码的.这是我正在使用的扩展:
#!/usr/bin/env python
from django.template.loader import render_to_string
from main.models import *
import markdown
version = "0.1.0"
class GalleriaExtension(markdown.Extension):
def __init__(self, configs):
self.config = {
}
# Override defaults with user settings
for key, value in configs:
self.setConfig(key, value)
def add_inline(self, md, name, klass, re):
pattern = klass(re)
pattern.md = md
pattern.ext = self
md.inlinePatterns.add(name, pattern, "<reference")
def extendMarkdown(self, md, md_globals):
self.add_inline(md, 'galleria', Galleria,
r'\[\[(G|g)allery (?P<superpage_id>\w+)\]\]')
class Galleria(markdown.inlinepatterns.Pattern):
def handleMatch(self, m):
try:
images = SuperPage.objects.get(id=m.group('superpage_id')).superpageimage_set.all()
except:
images = None
if …Run Code Online (Sandbox Code Playgroud) 我有一个新网站,我正在整理,其中一部分有网站用户的统计数据.我想创建一个其他人可以在另一个网站上使用的小部件,通过调用从我的服务器读取数据的javascript并显示给定用户的统计信息,但我很难在django中找到涵盖此内容的特定教程.
我已经在Alex Maradon的网站[0]上看到了这个链接,但在我看来,这就是将html传递给小部件,我很难找到如何使用像xml这样的东西.
有没有任何django应用程序这样做或有没有人知道好的方法?
我有一个django 1.2.1的实例在ubuntu上运行,带有一个mysql 5后端.我正在尝试制作一个区分大小写的查询,该查询应该只返回一个结果,但我得到两个具有相同内容但具有不同情况的结果.
我想获得一个具有以下标题的条目:互联网综合症中的猫
所以我使用以下查询:
c = Change.objects.filter(change_type='new',title__exact='Cat on the Internet syndrome')
Run Code Online (Sandbox Code Playgroud)
我得到以下结果:
>>> c
[<Change: Change object>, <Change: Change object>]
Run Code Online (Sandbox Code Playgroud)
每个Change对象的标题:
>>> for i in c:
... print i.title
...
Cat on the Internet Syndrome
Cat on the Internet syndrome
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,每个对象标题中的综合征中的'S'对于S综合征具有不同的情况.我从阅读文档[0]的印象是所有查询都默认为'确切'类型.当我没有指定时,我得到相同的结果title__exact='Cat on the Internet syndrome'.
如何确保在上面概述的查询中使用区分大小写?
[0] http://docs.djangoproject.com/en/dev/ref/models/querysets/#std:fieldlookup-exact
编辑:Mysql版本是:
mysql Ver 14.14 Distrib 5.1.41, for debian-linux-gnu (i486) using readline 6.1
Run Code Online (Sandbox Code Playgroud) 我有一个脚本解析出表示日期和时间的电子邮件标题中的字段.这些字符串的一些示例如下:
Fri, 10 Jun 2011 11:04:17 +0200 (CEST)
Tue, 1 Jun 2011 11:04:17 +0200
Wed, 8 Jul 1992 4:23:11 -0200
Wed, 8 Jul 1992 4:23:11 -0200 EST
Run Code Online (Sandbox Code Playgroud)
在我遇到某些字符串末尾的CEST/EST部分之前,我的工作非常好,只需使用datetime.datetime.strptime如下:
msg['date'] = 'Wed, 8 Jul 1992 4:23:11 -0200'
mail_date = datetime.datetime.strptime(msg['date'][:-6], '%a, %d %b %Y %H:%M:%S')
Run Code Online (Sandbox Code Playgroud)
我试图将正则表达式放在一起以匹配字符串的日期部分,同时在最后排除时区信息,但我遇到了正则表达式的问题(我无法匹配冒号).
使用正则表达式是解析上述所有示例的最佳方法吗?如果是这样,有人可以共享一个与这些例子匹配的正则表达式吗?最后,我希望有一个datetime对象.
我有一个看起来像这样的 Django 模型:
class Definition
name = models.CharField(max_length=254)
text = models.TextField()
Run Code Online (Sandbox Code Playgroud)
如果我执行以下查询:
animal = Definition.objects.get(name='Owl')
Run Code Online (Sandbox Code Playgroud)
如果我的数据库中有这些名称的以下定义:
Elephant, Owl, Zebra, Human
Run Code Online (Sandbox Code Playgroud)
有没有办法做一个django查询,它会animal根据name模型中字段的字母顺序显示基于对象的上一个和下一个定义?
我知道有多种方法可以根据datetime字段获取上一个/下一个,但我对这种情况不太确定。
python ×8
django ×4
regex ×2
alphabetical ×1
attachment ×1
datetime ×1
email ×1
firewall ×1
gateway ×1
gmail ×1
html ×1
html-encode ×1
imaplib ×1
iptables ×1
javascript ×1
json ×1
linux ×1
markdown ×1
model ×1
widget ×1