我有这个脚本来测试正则表达式以及unicode的行为:
# -*- coding: utf-8 -*-
import re
p = "Solo voy si se sucedierón o se suceden mañana los siguienñes eventos:"
w = re.findall('[a-zA-ZÑñ]+',p.decode('utf-8'), re.UNICODE)
print(w)
Run Code Online (Sandbox Code Playgroud)
而且print语句显示如下:
[u'Solo', u'voy', u'si', u'se', u'sucedier', u'n', u'o', u'se', u'suceden', u'ma', u'ana', u'los', u'siguien', u'es', u'eventos']
Run Code Online (Sandbox Code Playgroud)
"sucedierón"正在转变为"u'sucedier', u'n'",并同样"mañana" 成为"u'ma', u'ana'".
我试过解码,添加'\xc3\xb1a'到正则表达式'Ñ'
在阅读了一些文档后,我意识到使用[a-zA-Z]只匹配ASCII字符.这就是为什么我必须改为,r'\b\w+\b'所以我可以为正则表达式添加标志
w = re.findall(r'\b\w+\b', p, re.UNICODE)
Run Code Online (Sandbox Code Playgroud)
但这没效果.
我也试过decode()第一次和findall()后来:
p = "Solo voy si …Run Code Online (Sandbox Code Playgroud) 我有一个列表,其长度为:370000.在这个列表中,我有以下项目:"a", "y", "Y", "q", "Q", "p", "P",,这意味着这是一个单词列表,但我不时会得到那些单个字符.
我想从列表中删除这些字符,我在python中很新,但我想到的第一件事就是做类似的事情:
for word in words:
if word== 'm' or word== 'y' or word== 'Y' or word== 'p' or word== 'Q' or word== 'q' or word== 'a' or word== 'uh':
words.remove(word)
Run Code Online (Sandbox Code Playgroud)
在一个包含370.000项目的列表中,这种方法正在耗费时间.说真的,很多.
有没有人对如何获得更好的表现有另一个很棒的想法?
提前致谢.
最近,我参加了一个Python开发人员职位的面试.以下代码是其中一个问题.我只需要写输出.
def extendList(val,list=[]):
list.append(val)
return list
list1 = extendList(10)
list2 = extendList(123,[])
list3 = extendList('a')
print "list1 = %s " %list1
print "list2 = %s " %list2
print "list2 = %s " %list3
Run Code Online (Sandbox Code Playgroud)
输出是:
list1 = [10, 'a']
list2 = [123]
list2 = [10, 'a']
Run Code Online (Sandbox Code Playgroud)
我试图理解为什么第一个列表list1具有'a'价值.
编辑
我检查了所有的链接,发现它是一个pygg"gotcha"为begginers,但要感谢答案,不能选择这两个所以我要去第一个.
我有一个输入标签,用户必须在其中上传文件。现在,如果用户没有上传任何内容,我会在主视图中执行此操作:
if len(request.FILES) != 0:
data = request.FILES['some_file']
...do some work...
else:
return render(request, 'App/nofile.html' )
Run Code Online (Sandbox Code Playgroud)
如果没有文件,则将用户带到另一个页面,在该页面上说没有文件上传,然后使他/她返回主页。
有没有一种方法可以检查用户是否没有上传文件并且没有转到其他页面,而只是在该页面的中间显示带有消息的图片?
不只是STRING消息,而是带有消息的图片。
也许javascript是答案,但我对javascript一无所知。
在此先感谢您的帮助。
我创建了一个非常基本的登录应用程序。LOGIN_URL、LOGIN_REDIRECT_URL 和 LOGOUT_URL 工作得很好。
问题是,如果我成功登录,然后关闭窗口(浏览器),然后重新打开浏览器,我可以完美地搜索 url(我想只查看我是否登录的那个)并使用应用程序无需再次登录。这不是结束的地方:如果我同时打开 2 个单独的浏览器:Chrome 和 Firefox,并且我只登录了一个,我可以毫无问题地使用其他浏览器的应用程序。我不希望这发生。我尝试在 urls.conf 中使用 login_required 作为索引视图(只有登录后才能看到的页面),在类视图中,我尝试使用 stronhold 和 django-braces。有没有其他方法可以做到这一点?如果您想查看任何代码,请告诉我。我使用django实现的登录和注销(auth)。比你
我开始在Django中使用一个简单的例子,只是测试一下,我收到了一个错误.
这是我在view.py中的代码:
def index(request):
file = open("wappApp/talk.txt", encoding="UTF-8")
data = file.read()
file.close()
dates = search_date(data)
return render(dates, 'wappApp/index.html')
Run Code Online (Sandbox Code Playgroud)
日期是一个日期列表.
在我的模板中,我这样做:
<ul>
{% for days in dates %}
<li><a>{{ days }}</a></li>
{% endfor %}
</ul>
Run Code Online (Sandbox Code Playgroud)
但是有些事情我不会因为在django中成为一个新人.
这是错误:'list'对象没有属性'META'
任何帮助都会非常值得体会
我有一组日期:
dates1 = {'21/5/2015', '4/4/2015', '15/6/2015', '30/1/2015', '19/3/2015', '25/2/2015', '25/5/2015', '8/2/2015', '6/6/2015', '15/3/2015', '15/1/2015', '30/5/2015'}
Run Code Online (Sandbox Code Playgroud)
相同的日期出现在文本中(从现在起'数据').这是一个很长的文字.我想循环文本并获得每个日期出现在文本中的次数,然后我打印出更多出现的5个日期.
我现在拥有的是:
def dates(data, dates1):
lines = data.split("\n")
dict_days = {}
for day in dates1:
count = 0
for line in lines:
if day in line:
count += 1
dict_days[day] = count
newA = heapq.nlargest(5, dict_days, key=dict_days.get)
print(newA)
Run Code Online (Sandbox Code Playgroud)
我在行中分割tex,创建一个dict,对于列表中的每个日期,它在每一行中查找它,如果它发现它将count加1.
这个工作正常,但是这个方法花了很多时间.
所以我要问的是,如果有人知道一种更有效的方法来做同样的事情
任何帮助将非常感激
编辑
我会尝试每一个答案并让你知道,提前谢谢
我让用户上传一个 txt 文件然后提交它,这样我就可以在我的一个视图中对该文件做一些工作。
我遇到了一些问题,但在社区的帮助下,现在至少可以识别我表单中的 POST 方法。
发生的事情是我的观点无法读取文件。这是我调试我的观点:
如您所见, do_some_work 方法检查 POST 方法,如果是请求附带的文件,则为 TXT 文件,然后拆分该文件中的行。
嗯,这是行不通的。当我到达那条线时,我得到:
'InMemoryUploadedFile' object has no attribute 'split'
Run Code Online (Sandbox Code Playgroud)
所以我不知道有什么问题。
这是我的表格:
<form action="{% url "do_some_work" %}" method="POST" enctype="multipart/form-data">
{% csrf_token %}
<div class="form-group">
<label for="exampleInputFile">File input</label>
<input type="file" id="exampleInputFile" name="some_file">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)
我将不胜感激。如果您需要更多信息,请告诉我谢谢。
在阅读了一堆关于此的博客后,我找不到答案,也在SO中搜索过.
我有一个使用django模板标签的模板:
<div class="box" id="dates">
<h2 class="h2">Dates</h2>
<ul class="list-group">
{% for days in dates %}
<li class="list-group-item list-group-item-success">{{ days }}</li>
{% endfor %}
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
这个div等待来自ajax响应的答案.这是ajax代码:
$("#formi").submit(function(event){
event.preventDefault();
var data = new FormData($('form').get(0));
$.ajax({
type:"POST",
url:"{% url 'dates' %}",
data: data,
processData: false,
contentType: false,
csrfmiddlewaretoken: '{{ csrf_token }}',
success: function(data){
console.log("YEEEEEEEEEEEEEEEEAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHH")
$("#dates").html({{ data.dates }});
},
});
});
Run Code Online (Sandbox Code Playgroud)
相当自我解释.它将一个表单发送到视图,该视图使用将用于填充for loop模板的数据响应json .
我可以看到数据在控制台中进入模板
但是你可以看到,在ajax成功{{data.dates}}之后$("#dates").html,这并没有认出我的标签
那么,我怎样才能在我的模板中使用这个django标签并从ajax响应中获取数据?
提前感谢您提供的任何帮助.
这是一个非常基本的问题,因为我是使用 django 的新手。我制作了一个登录表单,可以很好地与我在数据库中的用户一起使用。问题是,例如,如果我输入“localhost:8000/Exi/index”,它确实会转到主“主页”页面,问题显然是我希望用户仅在登录后才能看到此页面在。我试过
class LoginRequiredMixin(object):
@classmethod
def as_view(cls):
return login_required(super(LoginRequiredMixin, cls).as_view())
class Index (LoginRequiredMixin,TemplateView):
template_name = 'index.html'
Run Code Online (Sandbox Code Playgroud)
但这对我不起作用。也许我没有看到一些东西,因为我在这里看了几个类似的问题,每个人似乎都在他们的项目中解决了这个问题。这是我这个页面的网址:
url(r'^$', views.LoginView.as_view(), name='login'), url(r'^index$', views.Index.as_view(), name='index')
先感谢您。
我有一个如下所示的列表:
list = ['Julio Cesar por inhumana (?)', '1/4/2015', '1/4/2015', '1/4/2015']
Run Code Online (Sandbox Code Playgroud)
我只想要约会.我有一个看起来像这样的正则表达式:
r'\b(\d+/\d+/\d{4})\b'
Run Code Online (Sandbox Code Playgroud)
但我真的不知道如何在列表中使用它.或者也许可以用其他方式完成
任何帮助将非常感激
我有一个带有动画控制器的游戏对象。游戏对象从屏幕底部移动到顶部,该移动由 Y 轴的动画控制。
我想做的是在 X 轴上随机移动它,而这个动画在 Y 轴上移动它
我所做的是在这个主动画中设置一些动画事件:
在这种情况下,我调用一个脚本,在 2 个位置之间移动对象:
public void RandomX ()
{
var pos = transform.position;
pos.x = Mathf.Clamp(transform.position.x, -1.75f, 2.85f);
print(pos.x);
}
Run Code Online (Sandbox Code Playgroud)
但这是行不通的。动画播放时 X 轴没有任何修改。
预先感谢您提供的任何帮助
我正在尝试做最简单的事情,打开一个文件,在python中读取并关闭它。简单。好的,这是代码:
name_file = open("Forever.txt", encoding='UTF-8')
data = name_file.read()
name_file.close()
print (data)
Run Code Online (Sandbox Code Playgroud)
我知道这些文本中有像心一样的表情符号。问题是这种表情符号没有像U + 2600这样的unicode语法,它们被放置为小图像。我认为以下错误是由于图像太小所致:
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\U0001f681' in
position 2333: character maps to <undefined>
Run Code Online (Sandbox Code Playgroud)
我尝试了以下操作,但未指定编码:
name_file = open("Forever.txt")
Run Code Online (Sandbox Code Playgroud)
错误更改为:
UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 2303: character maps to <undefined>
Run Code Online (Sandbox Code Playgroud)
不知道为什么会这样。
也许一种解决方案是将要测试的所有内容保存在变量中,然后删除其余的内容... mmm
任何帮助将不胜感激
python ×12
django ×6
list ×4
performance ×2
regex ×2
unicode ×2
ajax ×1
animation ×1
encoding ×1
file ×1
javascript ×1
jquery ×1
meta ×1
python-2.7 ×1