小编kev*_*kev的帖子

为什么python IDLE和Console会产生不同的结果

我写了一个简单的Python脚本来将中文标点符号翻译成英文.

import codecs, sys

def trcn():
    tr = lambda x: x.translate(str.maketrans("""?????????????????“”‘’????…—×""", """,.!?;:,()[][][][]""''<>~$^-*"""))
    out = codecs.getwriter('utf-8')(sys.stdout)
    for line in sys.stdin:
        out.write(tr(line))

if __name__ == '__main__':
    if not len(sys.argv) == 1:
        print("usage:\n\t{0} STDIN STDOUT".format(sys.argv[0]))
        sys.exit(-1)
    trcn()
    sys.exit(0)
Run Code Online (Sandbox Code Playgroud)

但是UNICODE出了点问题.我无法通过它.错误消息:

Traceback (most recent call last):
  File "trcn.py", line 13, in <module>
    trcn()
  File "trcn.py", line 7, in trcn
    out.write(tr(line))
  File "C:\Python31\Lib\codecs.py", line 356, in write
    self.stream.write(data)
TypeError: must be str, not bytes
Run Code Online (Sandbox Code Playgroud)

之后,我在IDLE和Console中测试out.write().他们产生了不同的结果 我不知道为什么.

在IDLE

Python 3.1.2 (r312:79149, Mar 21 …
Run Code Online (Sandbox Code Playgroud)

python

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

如何将 lxml xpath 函数导入默认命名空间?

这是lxml 文档中的一个示例:

>>> regexpNS = "http://exslt.org/regular-expressions"
>>> find = etree.XPath("//*[re:test(., '^abc$', 'i')]",
...                    namespaces={'re':regexpNS})

>>> root = etree.XML("<root><a>aB</a><b>aBc</b></root>")
>>> print(find(root)[0].text)
aBc
Run Code Online (Sandbox Code Playgroud)

我想将re:test()函数导入默认命名空间,这样我就可以在没有前缀的情况下调用它re:。我该怎么做?谢谢!

python xpath lxml

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

如何在Vim中将所有选定的字符更改为_

我尝试使用Vim绘制类图.

  • 我用白色空格填充编辑器窗口.

  • 键入:匹配SpellBad /\s /以突出显示所有空格.

  • Ctrl+ Q选择垂直白色空格.

  • Shift+ I插入Bar(|)然后Esc

  • ...........................

  • v+ l+ ... + l选择水平白色空格

但我不知道如何将所有选定的水平空格更改为下划线(_).

我必须达到_ser伐时间.
当来到长水平线时,它很糟糕.

  ___________             ___________               
 |           |           |           |              
 | BaseClass |/__________|  Client   |              
 |___________|\          |___________|              
      /_\                                           
       |                                            
       |____________________________________        
       |                 |                  |       
  _____|_____       _____|_____        _____|_____  
 |           |     |           |      |           | 
 | SubClass1 |     | SubClass2 |      | SubClass3 | 
 |___________| …
Run Code Online (Sandbox Code Playgroud)

vim

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

如何将所有hlsearch文本复制到Vim中的剪贴板

file.txt的

abc123
456efg
hi789j
Run Code Online (Sandbox Code Playgroud)

命令

:set hlsearch
/\d\+
Run Code Online (Sandbox Code Playgroud)

我想将突出显示的文本复制到剪贴板(或注册):

123
456
789
Run Code Online (Sandbox Code Playgroud)

就像

egrep -o '[0-9]+' file.txt
Run Code Online (Sandbox Code Playgroud)

谢谢.

vim

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

在HTML中提取URL速度更快?[html.parser.HTMLParser]或[re.match]或者其他什么

有时,我想解析HTML以提取URL.
我找到了[html.parser.HTMLParser],[re.match]都可以做到这一点.
我想知道哪个更快.

是否有像jquery解析HTML 的python模块?

如果您有更好的解决方案,请发表评论.

谢谢


lxml非常好.它使工作变得非常简单.

>>>for url in parse(urlopen('http://www.stackoverflow.com')).getroot().find_class('question-hyperlink'): print(url.get('href'))
Run Code Online (Sandbox Code Playgroud)

python

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

如何在vim中映射{Ctrl 0, - ,=}键?

我的键盘布局(第2行):

`1...0-=Backspace

我要地图函数调用Ctrl+ 0,-,=.

这是我创建的功能:

" it doesn't work
nnoremap <C-=>  :call IncFontSize(+1)<CR>

" it works
nnoremap <C-->  :call IncFontSize(-1)<CR>

" it doesn't work
nnoremap <C-0>  :call IncFontSize(0)<CR>

fun! IncFontSize(inc)
    if !exists('+guifont')
        return
    endif
    let s:defaultfont = 'Ubuntu Mono 12'
    if a:inc==0 || empty(&guifont)
        let &guifont = s:defaultfont
        return
    endif
    let &guifont = substitute(&guifont, '\d\+$', '\=submatch(0)+'.a:inc, '')
endfun
Run Code Online (Sandbox Code Playgroud)

如何将函数调用映射到这些键?

mapping vim keyboard-shortcuts ubuntu-12.04

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

如何在sql中对多行进行求和

我有多行数据都共享相同的公司ID.

有没有办法使用SQL Server Management Studio 2005"汇总"所有金额,以便为每个公司ID提供一行数据?

例如,我目前有以下数据......

Company_Name   Company_ID   Amount
Company 6         10024   120
Company 6         10024   569
Company 6         10024    53
Company 6         10024   100
Company 6         10024   564
Company 7         10638  9500
Company 7         10638   105
Company 7         10638   624
Run Code Online (Sandbox Code Playgroud)

我想尝试得到的是.......

Company_ Name   Company_ID     Amount 
Company 6        10024         1406
Company 7        10638        10229
Run Code Online (Sandbox Code Playgroud)

有办法做到这一点吗?

任何指示我正确方法的建议都会很棒.

谢谢,

sql summary

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

vim中的`:bar`无法按预期工作

阅读vim doc后*:bar* *:\bar*:

'|' 可用于分隔命令,因此您可以在一行中提供多个命令.


我尝试通过此命令清除历史记录:

:set history=0 | set history=20
Run Code Online (Sandbox Code Playgroud)

我希望,这两个命令应该逐个执行,并且应该清除历史记录.
但事实并非如此.历史仍然存在,并增加了新的历史.


然后我尝试了:

:set history=0
:set history=20
Run Code Online (Sandbox Code Playgroud)

有用.


为什么?

vim

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

为什么C程序可以删除自己然后运行另一个任务?

#include <stdio.h>

int main(int argc, char *argv[])
{
    printf("remove %s\n", argv[0]);
    remove(argv[0]);

    printf("rename %s to %s\n", argv[1], argv[2]);
    rename(argv[1], argv[2]);
}


$g++ hello.cpp -o hello
$touch tmp
$./hello tmp temp
remove ./hello
rename tmp to temp
Run Code Online (Sandbox Code Playgroud)

为什么可能?

c

0
推荐指数
1
解决办法
198
查看次数

如何在Dockerfile中将任意命令编码为exec表单?

在Dockerfile中,RUN有2种形式:

  • RUN <command> (该命令在shell中运行 - /bin/sh -c - shell形式)
  • RUN ["executable", "param1", "param2"] (执行形式)

如何编码>,>>,<,&& ||作为高管的形式?


这是一个非常简单的dockerfile.我想重写RUN <command>为exec表单.
但我不知道怎么做.

# Dockerfile
FROM ubuntu:14.04
RUN date > /tmp/out && echo 'hello world' >> /tmp/out
CMD cat /tmp/out
Run Code Online (Sandbox Code Playgroud)

docker

0
推荐指数
1
解决办法
281
查看次数

标签 统计

vim ×4

python ×3

c ×1

docker ×1

keyboard-shortcuts ×1

lxml ×1

mapping ×1

sql ×1

summary ×1

ubuntu-12.04 ×1

xpath ×1