小编Oli*_*Oli的帖子

正确的方法来定义Python源代码编码

PEP 263定义了如何声明Python源代码编码.

通常,Python文件的前两行应该以:

#!/usr/bin/python
# -*- coding: <encoding name> -*-
Run Code Online (Sandbox Code Playgroud)

但我看到很多文件以:

#!/usr/bin/python
# -*- encoding: <encoding name> -*-
Run Code Online (Sandbox Code Playgroud)

=> 编码而不是编码.

那么声明文件编码的正确方法是什么?

是否允许编码,因为使用的正则表达式是懒惰的?或者它只是声明文件编码的另一种形式?

我问这个问题是因为PEP没有谈论编码,它只是谈论编码.

python encoding

156
推荐指数
4
解决办法
8万
查看次数

如何在文件中搜索多行模式?

我需要找到包含特定字符串模式的所有文件.想到的第一个解决方案是使用带有xargs grep的find管道:

find . -iname '*.py' | xargs grep -e 'YOUR_PATTERN'
Run Code Online (Sandbox Code Playgroud)

但是如果我需要找到跨越多行的模式,我就会被卡住,因为vanilla grep找不到多行模式.

linux command-line grep find pcregrep

113
推荐指数
8
解决办法
12万
查看次数

如何从gvim中获取环境变量

当我使用终端启动gvim时,我可以访问我的所有环境变量.

但是如果我从菜单或"运行应用程序"启动器启动gvim,则无法访问所有环境变量.

如果没有从终端启动gvim,我如何访问我的bashrc中定义的环境变量?

这些变量在〜/ .bashrc中定义

发行版:Ubuntu Intrepid

注1:通过按ALT + <F2>可以访问"运行应用程序"启动器

vim environment-variables

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

非贪婪解析与pyparsing

我正试图用pyparsing来解析一条线.该行由许多(键,值)组成.我想得到的是(键,值)列表.一个简单的例子:

ids = 12 fields = name
Run Code Online (Sandbox Code Playgroud)

应该导致类似于: [('ids', '12'), ('fields', 'name')]

一个更复杂的例子:

ids = 12, 13, 14 fields = name, title
Run Code Online (Sandbox Code Playgroud)

应该导致类似于: [('ids', '12, 13, 14'), ('fields', 'name, title')]

PS:结果列表中的元组只是一个例子.它可能是一个字典或其他列表或其他什么,它并不重要.

但无论我到现在为止做了什么,我得到的结果如下: [('ids', '12 fields')]

Pyparsing正在吃下一把钥匙,考虑到它也是价值的一部分.

这是一个示例代码:

import pyparsing as P

key = P.oneOf("ids fields")
equal = P.Literal('=')
key_equal = key + equal
val = ~key_equal + P.Word(P.alphanums+', ')

gr = P.Group(key_equal+val)
print gr.parseString("ids = 12 fields = name")
Run Code Online (Sandbox Code Playgroud)

有人能帮我吗 ?谢谢.

python grammar parsing pyparsing

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

如何知道您何时处于符号链接中

如何在Python中知道您所在的目录是否在符号链接中?

我有一个目录/ tmp/foo/kiwi

我创建了一个指向/ tmp/foo的符号链接/ tmp/bar

我进入/ tmp/bar/kiwi

linux命令pwd告诉我我在/ tmp/bar/kiwi,这是正确的.

python命令提示符告诉我我在/ tmp/foo/kiwi:

Python 2.5.1 (r251:54863, Oct  5 2007, 13:36:32) 
[GCC 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.getcwd()
'/tmp/foo/kiwi'
Run Code Online (Sandbox Code Playgroud)

有没有办法在Python中获取我真正的目录?

python

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