作者dadadavid (大大大卫)
看板Python
标题Re: [问题] 输出中文text档案
时间Tue Nov 27 23:52:11 2012
我不知道你要做什麽,但是你的程式中有许多不恰当的做法
我的方法
input_filename = 'address.txt'
with open(input_filename, 'r') as input_file:
with open('check.txt', 'w') as output_file:
for line in input_file.read().split('\n'):
output_file.write(line.split(',')[1] + '\n')
如果你读和写的中文编码都是big5,那不需要做什麽处理。
※ 引述《ob556 (^o^OoB)》之铭言:
: 最近开始接触python(2.7)
: 尝试用python读入一个txt档
: 内容大致如下:
: 1,台北市松山区
: 2,台北市文山区
: 3.高雄市三民区
: ..............................
: 我要使用split(',')将数字、和地区分开进行一些处理後
: 再输出储存至另一个txt档中
: 现在遇到的问题是我输出後的txt档没办法正确显示中文
: 测试程式码如下:(目前尚未进行处理的部分,只是想测试输出档案)
: # -*- coding: Big5 -*-
: import os
之後没有用到os,不用import
: address = raw_input('欲转换档案之档名(包括.txt, 最好是英文):')
: txtContent=open(address)
: txt=open('check.txt','w')
: c = 0
: for line in txtContent:
textContent为一个file,通常要read或readline来转成string
: if c == 0:
: c+=1
: continue
c 後来没有用到,又是为何?
: no,addr = line.split(',')
split後的结果为一个list, 但是(no, addr)是一个tuple
: a = [no,addr]
上两句等同於a = line.split(',')
: b =str(a)
a为split後的结果,为一个list,不应也不必如此转成string,
如果有需要转的地方,也应写成 b = [str(item) for item in a]
: txt.write(b)
write之後要接string,因为上一步你转的不好,所以就产生如下的输出了
: print b
: txtContent.close()
: txt.close()
: 但输出结果如下:
: ['\x001\x00',
: '\x00\xd8\x9a\xc4\x96\x02^\x1fW\xab^2\x00\xef\x8d2\x006\x003\x00_\x86\r\x00\n']
: ['\x002\x00', '\x00\xd8\x9a\xc4\x96\x02^^t][W\x886\x004\x00_\x86\r\x00\n']
: ['\x003\x00',
: '\x00\xd8\x9a\xc4\x96\x02^"o\x11l\xef\x8d1\x003\x008\x00_\x86\r\x00\n']
: 请问这要如何解决><?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.33.249.239