ผมทำการอ่านข้อมูลมาจากไฟล์ชื่อ 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 ครับ
ขอบคุณล่วงหน้าครับ
ใช้ Python 2 ?
ถ้าใน python 3 ปัญหานี้น่าจะไม่มีแล้วนะครับ
เติม encodeing='utf-8' ให้ fn = open(file_222.txt, 'w') ด้วยสิ
python2 นี่งงมากเลยครับกับภาษาไทย
encodeing='utf-8' => encoding='utf-8'