Tags:
Forums: 

ผมทำการอ่านข้อมูลมาจากไฟล์ชื่อ file_111.txt
สมมติว่า ภายในไฟล์ มี 30,000 record
แต่ละ record มี 15 คอลัมน์
แบ่งแต่ละคอลัมน์ ด้วย tab

ทำการ split ข้อมูลที่ละ 1 record เข้าไปเก็บใน list ก่อน
แล้วจึงค่อยอ่านข้อมูลใน list ลงไปเก็บในไฟล์ file_222.txt อีกที

ซึ่ง item ใน list จะ write ลงไฟล์ได้เกือบหมด
จะติดบาง item ที่มีปัญหา คือ item ตัวสุดท้าย
ที่เก็บค่าของ URL คือ

ถ้า URL นั้นเก็บภาษาอังกฤษ ก็เก็บได้ปกติ
แต่ถ้า URL นั้นมีภาษาไทยปนอยู่ด้วย จะเกิด error และไม่ write ต่อ
รบกวนแนะนำด้วยครับ

ตัวอย่าง code

fo = open(file_111.txt', 'r', buffering=1, encodeing='utf-8', error='ignore')
fo.seek(0)
fn = open(file_222.txt, 'w')
fo.seek(0)
for a_row in fo:
lo = a_row.split()
lo1 = lo[8].encode('utf-8')
lo2 = lo1.decode('utf-8')
fn.write(lo[0], lo[3], lo[4], lo[5], lo[7], lo2)
print('Finish')
fo.close()
ln.close()

สมมติ lo[8] เป้น item ที่เก็บ URL นะครับ
อาจมีปรับไป-มานิดหน่อย
คือบางครั้ง ถ้ามีภาษาไทยสั้นๆใน URL ก็ปรับแก้ ก็จะรันต่อไปได้
แต่ก็จะติดกรณี ถ้ามีภาษาไทยยาวๆใน URL อยู่ดี
งง มากครั้บ ทำไมมันไม่ติดทุกเคส ติดเฉพาะเคสที่มีภาษาไทยยาวๆ

ใช้ PyChram Community 2016.3 ครับ
ขอบคุณล่วงหน้าครับ

Get latest news from Blognone
By: sukoom2001
ContributorAndroidUbuntu
on 2 December 2016 - 21:11 #956743
sukoom2001's picture

ใช้ Python 2 ?
ถ้าใน python 3 ปัญหานี้น่าจะไม่มีแล้วนะครับ

By: nat3738
ContributorAndroidRed HatUbuntu
on 2 December 2016 - 22:37 #956751

เติม encodeing='utf-8' ให้ fn = open(file_222.txt, 'w') ด้วยสิ

By: Jaddngow
AndroidUbuntuWindows
on 4 December 2016 - 12:06 #956905
Jaddngow's picture

python2 นี่งงมากเลยครับกับภาษาไทย

By: hezagon6 on 7 December 2016 - 09:45 #957269
hezagon6's picture

encodeing='utf-8' => encoding='utf-8'

By: saixiii on 15 May 2017 - 18:58 #986930
saixiii's picture

import codecs
fn = codecs.open(file_222.txt, "w", "utf-8")