Score:-2

Python ปัญหาการอ่านบรรทัดในไฟล์เปิดโดยใช้ "open('file_name.txt', 'r')"

ธง in

ฉันพยายามอ่านเนื้อหาของไฟล์ข้อความ ทีละบรรทัด ด้วยรหัสนี้:

นำเข้า os.path  

file_to_read = เปิด ("file_name.txt", "r")  
บรรทัด = file_to_read.readlines()

เมื่อฉันเรียกใช้ ฉันได้รับข้อผิดพลาดต่อไปนี้:

ป้อนคำอธิบายรูปภาพที่นี่

Traceback (การโทรครั้งล่าสุดล่าสุด):
ไฟล์ "D:/Files/test.py" บรรทัดที่ 4 ใน <โมดูล>
บรรทัด = file_to_read.readlines()
ไฟล์ "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python39_64\lib\encodings\cp1252.py", บรรทัด 23 ในการถอดรหัส ส่งคืน codecs.charmap_decode(อินพุต,self.errors,decoding_table)[0]
UnicodeDecodeError: ตัวแปลงสัญญาณ 'charmap' ไม่สามารถถอดรหัสไบต์ 0x9d ในตำแหน่ง 260: แมปอักขระไปยัง < undefined>

ถ้าฉันลบบรรทัดสุดท้ายออก โค้ดจะมีลักษณะดังนี้:

นำเข้า os.path  

file_to_read = เปิด ("file_name.txt", "r")  

แล้วฉันไม่ได้รับข้อผิดพลาดใด ๆ

ป้อนคำอธิบายรูปภาพที่นี่

ซึ่งชี้ให้ฉันเห็นถึงปัญหาเกี่ยวกับ บรรทัด = file_to_read.readlines()แต่ฉันไม่เห็นอะไรผิดปกติกับมัน

Ola Ström avatar
in flag
พบคำตอบที่ดีที่นี่เช่นกัน: https://stackoverflow.com/questions/491921/unicode-utf-8-reading-and-writing-to-files-in-python
cocomac avatar
cn flag
คุณใช้ระบบปฏิบัติการอะไร ดูเหมือนว่าคำถามของคุณ [ไม่ตรงประเด็น](https://askubuntu.com/help/on-topic) เพราะคุณไม่ได้ใช้ Ubuntu หรืออนุพันธ์ที่เป็นทางการฉันเห็น `D:/Files` ซึ่งเป็นเส้นทางแบบ Windows และภาพหน้าจอ IDLE ของคุณดูเหมือน Windows
Ola Ström avatar
in flag
ขออภัย ลืมไป ฉันใช้ทั้ง Windows และ Ubuntu แทนกันได้ ดังนั้นมันจึงเกิดขึ้นจาก Windows ในตอนนี้ Ubuntu ของฉันที่ฉันใช้อยู่บน VM บนคอมพิวเตอร์ Windows เครื่องเดียวกัน...
Score:2
ธง ug

ไม่มีอะไรผิดปกติกับ บรรทัด = file_to_read.readlines()แต่นี่คือบรรทัดที่อ่านเนื้อหาของไฟล์จริงๆ เปิด() เพียงแค่เปิดมันและไม่ได้อ่านต่อ

เช่นเดียวกับข้อผิดพลาดที่บอกคุณ python ไม่รู้วิธีถอดรหัส ไบต์ 0x9d ในตำแหน่ง 260. ตรวจสอบการเข้ารหัสไฟล์และตรวจสอบให้แน่ใจว่าไฟล์ไม่เสียหาย

คำตอบนี้ อาจช่วยคุณได้เช่นกัน (เช่น ระบุการเข้ารหัส utf-8 อย่างชัดเจน หรือการเข้ารหัสอะไรก็ตามที่ไฟล์ใช้) โดยพื้นฐานแล้ว

ด้วย open("file_name.txt", "r", encoding="utf-8") เป็น file_to_read:
    ...
Ola Ström avatar
in flag
'file_to_read = open("file_name.txt", mode="r", encoding="utf-8")' แก้ไขปัญหา...
Score:1
ธง in

คำถามนี้นอกหัวข้อที่นี่ คุณกำลังใช้งาน Windows และถามเกี่ยวกับ Python แต่ไซต์นี้มีไว้สำหรับคำถามเกี่ยวกับ Ubuntu

ต้องบอกว่า ตรวจสอบไฟล์ข้อความและตำแหน่งที่ระบุในข้อผิดพลาดสำหรับอักขระพิเศษที่ไม่ได้เป็นส่วนหนึ่งของ utf-8 ตัวอย่างเช่นสัญลักษณ์ลิขสิทธิ์

Ola Ström avatar
in flag
ขออภัย ลืมไป ฉันใช้ทั้งสองอย่างแทนกันได้ ดังนั้นฉันจึงบังเอิญรันโค้ดบน Windows ในตอนนี้ Ubuntu ของฉันอยู่บน VM บน Windows ของฉัน...

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา