Python 板


LINE

各位前备好 近日BS2要关站 想用python写一个贴文机器 把备份下来的txt文档贴到ptt2的个板上 但是在文字编码上出了问题 以下是贴文部分的code 读资料夹档案 for dirPath, dirNames, fileNames in os.walk("./BS2/"): 读档 for file in fileNames: print (file) ctrl+p进入发文画面 tn.write('\x10'.encode('ascii')) time.sleep(1) tn.write("\r\n".encode('big5')) time.sleep(1) 输入文章标题 tn.write(file.encode('big5')) time.sleep(1) tn.write("\r\n".encode('big5')) time.sleep(1) 开启备份txt档并写入 ftxt = open("./BS2/%s"%file,"r") lines = ftxt.readlines() for line in lines: tn.write(line.encode('big5')) <==主要问题在这列 tn.write("\r\n".encode('big5')) ftxt.close() 等同ctrl+x 文章存档贴出 tn.write('\x18'.encode('ascii')) time.sleep(1) tn.write("s\r\n0\r\n\r\n".encode('big5') ) time.sleep(1) tn.write('\x0C'.encode('ascii')) time.sleep(1) 问题描述: 如果文章中有用到一些特殊字元(例如表格) big5就吃不进去(会找不到编码然後程式停止报错) 如果那边编码使用utf-8是不会停止後报错 但是贴出来的文都变成乱码 请问这种状况有解法吗? 谢谢! --
1F:推 sandwichpope:小妹妹,你想要成为魔法少女吗?03/29 20:32
2F:推 sandwichpope:要成为魔法少女的第一步就是要先熟练地使用魔法棒03/29 20:32
3F:推 sandwichpope:大哥哥的这根魔法棒可以让你做练习喔03/29 20:32
4F:推 sandwichpope:只要搓一搓,神奇魔法棒就会变长03/29 20:32
5F:推 sandwichpope:再用力搓搓,魔法棒就会产生魔法药水03/29 20:32
6F:推 sandwichpope:如果喝下魔法药水,你就能成为魔法少女了03/29 20:32
--



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.92.63.147
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1465867582.A.70B.html
7F:→ alibuda174: 错误讯息? 06/14 09:40
Traceback (most recent call last): File "py_bbs2.py", line 78, in <module> tn.write(line.encode('big5')) UnicodeEncodeError: 'big5' codec can't encode character '\u2554' in position 5: illegal multibyte sequence ※ 编辑: aa4live (140.92.63.147), 06/14/2016 09:52:12
8F:→ alibuda174: 嗯,开档时加上参数errors='ignore'舍弃那些字元吧 06/14 09:58
9F:→ alibuda174: 要不然就要自己转换 06/14 09:59
谢谢! 不知道可以这样忽略XD 虽然文章会有缺漏一点 但是整体而言备份的效果有做到就好.... 感恩~
10F:推 kaichan: 可以试一下 "cp950" 而不是 "big5"。 06/14 11:45
11F:→ kaichan: 像「碁」这个字 cp950 可以转,big5 不能转 06/14 11:46
12F:推 kaichan: 你的这个字也可以用 cp950。 "\u2554".encode('cp950') 06/14 11:52
换成CP950後已没有问题 之前问题主要出在表格的框线上Orz... 感谢~
13F:→ uranusjr: 如果是 BBS 的话通常用 big5-hkscs 可以搞定 06/14 12:50
14F:→ uranusjr: 其实关键是你的档案本身是用什麽编码存的... 06/14 12:51
生txt档的程式是直接拿别人的来用 看不出是什麽编码 不过我再windows的环境执行他应该会是预设的CP950(? 但是CP950能显示日文感觉一整个怪 (wiki说CP950不含日文,是wiki没更新还是根本就是我误会?)
15F:→ uranusjr: CP950 确实不含日文, 我觉得你应该先确实知道它用的编码 06/14 18:12
16F:→ uranusjr: 最简单的方法装个 chardet 就可以试着侦测 06/14 18:12
17F:推 os653: cp950 不含日文没错,你有灌 Unicode 补完计画? 06/14 20:25
18F:→ os653: 有灌的话在 console 能显示日文,但是是会有问题的日文 06/14 20:25
19F:推 eight0: UAO en/decoder https://is.gd/qdGYrI 06/14 23:39
20F:→ eight0: py3 https://is.gd/opyamH 06/14 23:40
找了一个转出来含日文的档案用chardet来测试 结果是这样 {'encoding': None, 'confidence': 0.0} win7记事本开起来也看不到日文 但是读档贴到PTT2个板上显示是正常的 读档是用投两位推文的方法 ftxt = open("./BS2/%s"%file,"r",encoding='cp950', errors='ignore') 为什麽读成cp950之後贴到PTT2上面会正常rrrrrr 因为开档的时候ignore了这些日文的编码 可是直接贴到P2上他认的出来? 这样想不知道对不对0.0 ※ 编辑: aa4live (140.92.63.147), 06/15/2016 09:43:02
21F:→ alibuda174: 可以直接提供档案吗? 06/15 09:45
http://tinyurl.com/gpd9je3 测试用档案在这 放在google硬碟上他预览是正常能显示的0.0
22F:→ uranusjr: 这个档案我用 Big 5 HKSCS 可以正常显示 06/15 12:08
23F:→ alibuda174: 请问为什麽你的档案编码是Big5-HKSCS?香港人? 06/15 15:46
24F:推 eight0: 话说既然 tn.write 吃 bytes,直接把档案读成 bin 再喂给 06/15 16:26
25F:→ eight0: 它就行了吧? 06/15 16:27
感谢点破盲点XD
26F:→ s860134: 印象中 Big 5 HKSCS 与 Big5-UAO 有些关联 06/16 00:10
27F:→ s860134: 但是你说要转贴到PTT2 用 eight0 的方法应该蛮不错的 06/16 00:17
28F:→ s860134: 不要尝试去 encode 直接 byte 写 byte 读 06/16 00:17
真是一个突破盲点! 这样就不用去管编码问题了
29F:→ uranusjr: s860134: UAO 有一部分编码是照抄 HKSCS 的, 包括假名 06/16 01:06
30F:→ uranusjr: 而 HKSCS 那部分其实是照抄古早的倚天系统用的编码表 06/16 01:08
再次感谢以上各位大大留言<(_ _)> ※ 编辑: aa4live (140.92.63.147), 06/16/2016 14:45:31
31F:→ alibuda174: 请问,你不管编码问题的作法,有成功转贴到ptt2吗? 06/16 21:17
32F:→ aa4live: 有成功喔! 06/17 00:09
33F:→ s860134: BBS 都是 BIG-UAO 编码,telnet 本身就是吃 byte 输入的 06/17 02:43







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP