小编nuk*_*ukl的帖子

在Python中查找所有出现的子字符串

Python已经string.find()并且string.rfind()在字符串中获取子字符串的索引.

我想知道,也许有类似的东西string.find_all()可以返回所有已创建的索引(不仅从开始或从头到尾)?

例如:

string = "test test test test"

print string.find('test') # 0
print string.rfind('test') # 15

#this is the goal
print string.find_all('test') # [0,5,10,15]
Run Code Online (Sandbox Code Playgroud)

python regex string

325
推荐指数
12
解决办法
39万
查看次数

如果只有功能B需要功能A应该在B内定义A?

简单的例子.两种方法,一种叫另一种方法:

def method_a(arg):
    some_data = method_b(arg)

def method_b(arg):
    return some_data
Run Code Online (Sandbox Code Playgroud)

在Python中,我们可以def在另一个内部声明def.因此,如果method_b需要并且仅从中调用method_a,我应该method_b在内部声明method_a吗?像这样 :

def method_a(arg):

    def method_b(arg):
        return some_data

    some_data = method_b
Run Code Online (Sandbox Code Playgroud)

或者我应该避免这样做?

python coding-style

140
推荐指数
8
解决办法
24万
查看次数

用ziparchive覆盖文件

我有archive.zip两个文件:hello.txtworld.txt

我想hello.txt使用该代码覆盖新文件:

import zipfile

z = zipfile.ZipFile('archive.zip','a')
z.write('hello.txt')
z.close()  
Run Code Online (Sandbox Code Playgroud)

但它不会覆盖文件,不知何故它会创建另一个实例hello.txt- 看看winzip截图:

替代文字

既然没有smth zipfile.remove(),那么处理这个问题的最佳方法是什么?

python ziparchive

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

迭代xml元素的有效方法

我有这样的xml:

<a>
    <b>hello</b>
    <b>world</b>
</a>
<x>
    <y></y>
</x>
<a>
    <b>first</b>
    <b>second</b>
    <b>third</b>
</a>
Run Code Online (Sandbox Code Playgroud)

我需要迭代所有<a><b>标签,但我不知道它们中有多少是在文档中.所以我xpath用来处理:

from lxml import etree

doc = etree.fromstring(xml)

atags = doc.xpath('//a')
for a in atags:
    btags = a.xpath('b')
    for b in btags:
            print b
Run Code Online (Sandbox Code Playgroud)

它工作,但我有相当大的文件,并cProfile告诉我xpath使用非常昂贵.

我想知道,也许有更有效的方法来迭代无限数量的xml元素?

python lxml

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

从路径中提取文件名

我需要从文件路径字符串中获取文件名.例如,从这个字符串\abc\def\filename.txt我需要得到filename.txt

尝试使用regexp执行此操作:

$filepath="abc\filename.txt";
$filename = preg_replace("/.+\\/","",$filepath);
Run Code Online (Sandbox Code Playgroud)

但它给了我一个错误.我应该使用什么正则表达式来解决这个问题?

php regex

12
推荐指数
2
解决办法
3万
查看次数

向字符串对象添加自定义方法

可能重复:
我可以为内置Python类型添加自定义方法/属性吗?

在Ruby中,您可以使用自定义方法覆盖任何内置对象类,如下所示:

class String
  def sayHello
    return self+" is saying hello!"
  end
end                              

puts 'JOHN'.downcase.sayHello   # >>> 'john is saying hello!'
Run Code Online (Sandbox Code Playgroud)

我怎么能在python中做到这一点?有通常的方式或只是黑客?

ruby python

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

在HTML中嵌入Ruby代码?

在PHP中,可以这样做:

<input type="text" value=" <?php echo "Hello world"; ?> ">
Run Code Online (Sandbox Code Playgroud)

是否有可能将Ruby嵌入HTML中,无论是否有Rails?

ruby

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

django中的全局formfield_overriding

我在我的项目中有自定义文本字段小部件和许多表单.要使用此自定义小部件,我需要编写:

formfield_overrides = {
    TextField: {'widget': CustomTextFieldWidget},
}
Run Code Online (Sandbox Code Playgroud)

各种admin.ModelAdmin形式,这只是丑陋.

有没有办法只编写一次并在项目中的所有表单中使用自定义小部件?

django django-forms

8
推荐指数
1
解决办法
707
查看次数

Django 1.3中的Ajax CSRF问题

根据django文档,对于1.3中的ajax post请求(至少使用Jquery),我们只需要将此片段添加到主js文件中.此代码段从cookie获取csrftoken,然后为所有ajax请求设置它.这是有效的,但是如果csrftoken在cookie中不存在怎么办?我认为render_to_response和渲染都会自动检查会话中是否有csrftoken,如果不存在令牌,则为我们设置.但他们不是.所以,我需要自己实现它?或者也许有另一种方法来处理ajax csrf保护?

django ajax csrf

6
推荐指数
2
解决办法
3265
查看次数

docx"Microsoft Word中的文件已损坏"错误

我编写了一个程序,它打开docx包并<w:t>在"word/document.xml"中更改了一些文本.当我在Microsoft Word中打开新生成的docx时,它会给我一个错误 - "文件已损坏".但是如果在模板docx和结果docx文件之间查看"Open XML SDK Tool"差异 - 在"word/document.xml"中只更改了两行.看截图:

在此输入图像描述

程序不涉及文档格式,样式或smth.只有文字<w:t>

那么,什么可以引起Microsoft Word中的"文件已损坏"错误?

此错误仅出现在Microsoft Word中.例如,Mac OS X上的OpenOffice和TextEdit打开生成的文件,没有任何错误.

我上传了这些 docx文件,因此您可以自己查看它们.

ms-word docx ms-office

5
推荐指数
1
解决办法
2785
查看次数

标签 统计

python ×5

django ×2

regex ×2

ruby ×2

ajax ×1

coding-style ×1

csrf ×1

django-forms ×1

docx ×1

lxml ×1

ms-office ×1

ms-word ×1

php ×1

string ×1

ziparchive ×1