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没有谈论编码,它只是谈论编码.
我需要找到包含特定字符串模式的所有文件.想到的第一个解决方案是使用带有xargs grep的find管道:
find . -iname '*.py' | xargs grep -e 'YOUR_PATTERN'
Run Code Online (Sandbox Code Playgroud)
但是如果我需要找到跨越多行的模式,我就会被卡住,因为vanilla grep找不到多行模式.
当我使用终端启动gvim时,我可以访问我的所有环境变量.
但是如果我从菜单或"运行应用程序"启动器启动gvim,则无法访问所有环境变量.
如果没有从终端启动gvim,我如何访问我的bashrc中定义的环境变量?
这些变量在〜/ .bashrc中定义
发行版:Ubuntu Intrepid
注1:通过按ALT + <F2>可以访问"运行应用程序"启动器
我正试图用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中知道您所在的目录是否在符号链接中?
我有一个目录/ 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中获取我真正的目录?