V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  sjmcefc2  ›  全部回复第 41 页 / 共 41 页
回复总数  820
1 ... 32  33  34  35  36  37  38  39  40  41  
2018-05-05 08:07:14 +08:00
回复了 sjmcefc2 创建的主题 Python 读取大文件,最快的方式是什么?
100G 的文本。大家有好方式吗
2018-05-05 08:04:40 +08:00
回复了 sjmcefc2 创建的主题 Python 读取大文件,最快的方式是什么?
with open("file_name", 'r') as input:
for line in input:
#process
这种真的非常慢啊
@Arnie97 确实。不过有点太绕了。有不太长但是系统的资料可以参考吗?
@Arnie97 有点晕了。这个还有办法破吗? python3
@Arnie97 查了一下 p3 默认是 utf-8,如果这个编码不是 utf-8 的话,那必然乱码,需要先 encode,然后 decode ?
顺序反一下?
@Arnie97 一开始是用 2.7 的,发现没报错。现在要用 3.6 了。
不知道这个要怎么破,谢谢大侠。
@sampeng 顺便也学习下 python。另外这种是不是要占用很多存储呢
@sampeng 有个雏形,自行改造已经是“现成”了。能给几个关键字吗?
@Arnie97 感谢。非常好的思路。看起来这种判断还是挺复杂的,最终还是免不了肉眼“看”
@banbo 全部局域网内容都要下载下来?这个又 wheel 吗 /内容岂不是很大?爬虫应该怎么开始呢?各分公司的 ip 地址都没搞清楚。



@sampeng 还是不明白。es 我懂,可是都散落在各家网站啊,共享文件啊,这些怎么弄呢
@noe132 这个乱码判断真的就只能是判断图像了?我这个文本太奇葩了,一行里面掺杂太多不同的编码。chardet 有没有可能不适用随机算法?让每次的输出都相同?大规模判断就有问题,单个测试就能正确解码,这个现象很奇葩。
@billlee 那多少个字符会比较准?
中文字符的话,应该 gbk,gb2312,gb10830,big5 就这几个了吧。会不会出现两种或者多种都能解码的,但解码只有一个正确的?
@noe132 这样就会在不同的检测时点,检测结果不一样?为什么总觉得猜应该猜的一致才对呢?
另外,既然是猜,我也知道这个文件里面没有 ascii,utf-8,gbk,gb2312,gb10830,big5 之外的编码,是不是可以武断一点,如果发现 chardet 检测出上述编码之外的,我就用 utf-8 去碰运气?
@qile1 刚开始学 python,不知道怎么写的简洁,用上最多的轮子。。。
2018-04-28 11:54:05 +08:00
回复了 sjmcefc2 创建的主题 程序员 请教如何判断字符被正确解码?
@Arnie97 如何应对实际上解码错误的问题呢?
2018-04-28 11:35:20 +08:00
回复了 sjmcefc2 创建的主题 程序员 请教如何判断字符被正确解码?
@Arnie97 这就是最大的担忧,乱码是不是只能肉眼检查?
2018-04-27 12:48:29 +08:00
回复了 luozhiyun 创建的主题 程序员 请问各位程序员有啥好笔记本推荐吗?
@UnknownR e3 处理功能很强吗?现在都是 E5 吧
2018-04-27 10:58:17 +08:00
回复了 luozhiyun 创建的主题 程序员 请问各位程序员有啥好笔记本推荐吗?
@UnknownR 这个装数据库性能怎么样呢
2018-04-27 10:03:13 +08:00
回复了 sjmcefc2 创建的主题 程序员 请教如何判断字符被正确解码?
还有一个问题是我用 python 来对每行的字符串 split 后进行 chardet 判断转换,结果发现到了某一行,就会出异常。但是单独检查这一行,却能正确通过。
思路是先 chardet 判断,如果异常则用 utf-8 默认解码之后再编码。待清理的数据比较特殊,一行里有可能有好几个编码。。。。。
for f in line.split('|'):
try:
print f.decode(chardet.detect(f)['encoding']).encode('utf-8')
except:
print f.decode('utf-8').encode('utf-8')
2018-04-27 09:21:50 +08:00
回复了 sjmcefc2 创建的主题 程序员 请教如何判断字符被正确解码?
@Arnie97 一个字符“纠” 就被 chardet 判断成了 TIS-620.这样就失效了。
UTF-8/GBK 都能被 windows 1250 解码的含义是,正确显示字符吗(肉眼看到的是正确的字符)?是不是可以说针对汉字,可以默认 windows 1250 来解码?

一直觉得解码没有异常并不一定不是乱码?我这样理解对吗?
如何才能真正的某字符串不是乱码呢?
1 ... 32  33  34  35  36  37  38  39  40  41  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5169 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 24ms · UTC 03:51 · PVG 11:51 · LAX 19:51 · JFK 22:51
Developed with CodeLauncher
♥ Do have faith in what you're doing.