V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Sylv  ›  全部回复第 93 页 / 共 107 页
回复总数  2123
1 ... 89  90  91  92  93  94  95  96  97  98 ... 107  
2015-01-15 21:24:27 +08:00
回复了 tini9 创建的主题 macOS 昨天刚买了一个 rmbp15 寸,感觉 yosemite 好难看啊
说真的,之前也觉得 Yosemite 丑,觉得 Maverickes 拟物多有质感啊。但是用了这几个月后,偶尔再看到女朋友没升级的 Maverickes,真心觉得 Maverickes 怎么那么丑啊。一旦接受了这种设定,嘿,还挺带感的。
2015-01-15 21:01:17 +08:00
回复了 Anybfans 创建的主题 问与答 请教一个关于 Pythin 2.7 中文乱码的问题。
你这里其实是有两个问题:

第一个问题是你发现输出是这样 '\xb1\xb1\xbe\xa9',但这其实并不是乱码,这是非 ascii 字符串在 Python 内部的存储方式。例如 "北京" 在 utf-8 编码下在 Python 内部储存的就是 '\xe5\x8c\x97\xe4\xba\xac',你可以通过 repr() 方法取得这个,print repr("北京") -> '\xe5\x8c\x97\xe4\xba\xac'。因为你 print 的是个 list,Python 不会把 list 内的元素输出成供人阅读的字符串,而是打印出内部的存储形式。所以你的那个输出是正确的,没有乱码的问题。

第二个问题就是既然没有乱码那为什么无法匹配?那是因为你的 filtered_words.txt 文件是用 Windows 下的默认 GBK 编码保存的,那么 Python 读取里面的内容也就是 GBK 编码的字符串,'\xb1\xb1\xbe\xa9' 就是 '北京' 的 GBK 编码的字节码。而你的 Python 脚本又用的是 UTF-8 的编码,估计你的输入也是 UTF-8 的编码的字符串,那么当然两个编码的字符串就无法匹配上了。同样都是 '北京','\xe5\x8c\x97\xe4\xba\xac' != '\xb1\xb1\xbe\xa9'。
解决办法是,将读取的文本解码成 unicode,或者多一步再编码成 UTF-8 编码的 str。
用 GBK 编码将输入解码成 unicode:line.decode('gbk') -> unicode。
再用 UTF-8 编码将 unicode 编码成 UTF-8 编码的 str:line.decode('gbk').encode('utf-8')。
如果你用来比对的输入也是 unicode 的话,就无需再编码成 str 了,'\xb1\xb1\xbe\xa9'.decode('gbk') = u'北京'。推荐你在内部都用 unicode 来处理,这样就能尽量避免 Python2 的编码坑。
2015-01-15 07:45:48 +08:00
回复了 fdsfsdfsdf3334 创建的主题 随想 我觉得用 py2 的人,就是不愿意剪辫子的人
对我个人来说没换到 Python3 的动力,虽然我最初也是 Python3 入的门。
2015-01-13 05:33:26 +08:00
回复了 harrysummer 创建的主题 分享发现 海盗湾首页的密码终于被某 reddit 大神破解了
2015-01-12 18:10:14 +08:00
回复了 ranvane 创建的主题 Python 请大家给我看一下这个网站如何使用 python 模拟登陆?
因为你获取验证码的时候用的是 requests.get,后面登录的时候用的是 requests.Session(),两次不是同一个 session,导致登录的时候验证码不一样了。
解决办法:从头到尾用同一个 s = requests.Session(),验证码 yz_LoginCode = s.get(LoginCode_url),登录 signin_req = s.post(signin_url, data=logininfo, headers=headers)。
2015-01-11 22:48:19 +08:00
回复了 jacklong 创建的主题 Python GB2312
@zhicheng
'abcd'.encode('hex') 和 'abcd'.encode('base64') 输出都是 str,这和 str.encode(Unicode codecs) -> str 一致,没什么特别的。
但我真没见过 str.encode -> unicode 的情况。
2015-01-11 22:31:43 +08:00
回复了 jacklong 创建的主题 Python GB2312
@zhicheng 我明白你的意思了,你指的是 hex 等非 Unicode 相关的 codecs。我说的是楼主这种处理 Unicode 的情况。受教了。
2015-01-11 22:15:47 +08:00
回复了 jacklong 创建的主题 Python GB2312
@zhicheng
有什么问题吗?
那请你举个 str.encode(codecs) -> unicode 或者 unicode.decode(codecs) -> str 的例子。
2015-01-11 21:28:00 +08:00
回复了 jacklong 创建的主题 Python GB2312
@zhicheng
Codec.encode(input[, errors])
Encodes the object input and returns a tuple (output object, length consumed). While codecs are not restricted to use with Unicode, in a Unicode context, encoding converts a Unicode object to a plain string using a particular character set encoding (e.g., cp1252 or iso-8859-1).

Codec.decode(input[, errors])
Decodes the object input and returns a tuple (output object, length consumed). In a Unicode context, decoding converts a plain string encoded using a particular character set encoding to a Unicode object.

https://docs.python.org/2/library/codecs.html
2015-01-11 20:02:53 +08:00
回复了 jacklong 创建的主题 Python GB2312
@loading 不同报错要视情况解决的。
基本思路是:任何可能是非 ascii 的 str 输入要 decode('utf-8') 为 unicode,内部处理时都用 unicode,要输出时或使用不支持 unicode 的方法时(例如 urllib.unquote)再 encode('utf-8') 为 str。
2015-01-11 19:44:38 +08:00
回复了 jacklong 创建的主题 Python GB2312
@loading 我也从来没用过 sys.setdefaultencoding,是有更正确的解决办法的。
2015-01-11 19:41:45 +08:00
回复了 jacklong 创建的主题 Python GB2312
@zhicheng 返回的结果即可以是 str 也可以是 unicode?不对吧。
应该是:
str.decode() -> unicode
unicode.encode() -> str
str.encode() -> str.decode().encode() -> str
unicode.decode() -> unicode.encode().decode() -> unicode
2015-01-10 01:53:41 +08:00
回复了 goodbest 创建的主题 macOS 写了个 网易云音乐的 alfred workflow
很赞!
瞄了一眼源码,貌似还隐藏了下载功能?!
2015-01-08 23:03:00 +08:00
回复了 otmb 创建的主题 Sublime Text sublime 插件,敢专业点么:(
@imn1 st2 or st3 和你用哪个版本 Python 没有关系。
st3 是更新版本,现在还是 beta,相比 st2 有多项提升,性能也会更好。st2 已经基本上不更新了,所以 st3 应当是更好的选择。但是因为很多历史插件没能升级支持 Python3,所以 st3 估计还是得 beta 很久。
所以如果你想用的插件有不支持 st3 的,那就用 st2,否则为什么不用 st3?甚至还有个网站来帮你做这个判断:
http://www.caniswitchtosublimetext3.com
>>> print parser
<module 'parser' from '/usr/local/Cellar/python/2.7.8_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/parser.so'>

>>> print sys.builtin_module_names
('__builtin__', '__main__', '_ast', '_codecs', '_sre', '_symtable', '_warnings', '_weakref', 'errno', 'exceptions', 'gc', 'imp', 'marshal', 'posix', 'pwd', 'signal', 'sys', 'thread', 'xxsubtype', 'zipimport')

我这边 parser 不在 built-in module 里, 不知道为什么你的 parser 会跑到 built-in 里去了。
你的 Python 是特别的版本吗?什么平台的?
2015-01-08 14:06:25 +08:00
回复了 Francost 创建的主题 问与答 新买的 MacBook Pro With Retina 在官网无法注册序列号
我也觉得不是新机。
print sys.path 看下,按道理第一项就是 project 目录,所以应该导入的就是 project 下的 parser.py
我和你有同样的需求,也老收到那个澳门的垃圾信息,不过幸好我是用 iForward 将短信转发为邮件到另一个手机。
2015-01-07 15:09:11 +08:00
回复了 philipcui 创建的主题 问与答 astrill china optimized 1 在极贰路由 pp2t 里不好使?
@philipcui 不了解极路由。
我用的是华硕的路由器,可以刷 Merlin 系统,直接能装 Astrill 的路由器插件使用它定制过的协议。

http://i.imgur.com/mQ9qneR.png
1 ... 89  90  91  92  93  94  95  96  97  98 ... 107  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4933 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 48ms · UTC 09:21 · PVG 17:21 · LAX 02:21 · JFK 05:21
Developed with CodeLauncher
♥ Do have faith in what you're doing.