如何将UTF16LE txt文件转换为ANSI txt文件并删除PYTHON中的头文件?

2024-10-01 22:38:12 发布

您现在位置:Python中文网/ 问答频道 /正文

  1. 我有一个UTF-16-LE编码的.txt文件
  2. 我想删除标题(第一行)并将其保存在ANSI中
  3. 我可以做到这一点,但我需要做的150 txt文件每天
  4. 所以我想用Python来自动完成

但是我被卡住了, 我已尝试此代码,但它不起作用,产生错误:

*“返回mbcs_编码(输入,自身错误)[0]

UnicodeEncodeError:“mbcs”编解码器无法对位置0中的字符进行编码--1:无效字符“*

filename = "filetochangecodec.txt"
path = "C:/Users/fallen/Desktop/New folder/"
pathfile = path + filename
coding1 = "utf-16-le"
coding2 = "ANSI"

f= open(pathfile, 'r', encoding=coding1)
content= f.read()
f.close()
f= open(pathfile, 'w', encoding=coding2)
f.write(content)
f.close()


Tags: 文件pathtxt编码错误opencontentfilename
1条回答
网友
1楼 · 发布于 2024-10-01 22:38:12

一位高尚的贡献者帮助我解决了这个问题,我现在发布了它,这样每个人都可以从中受益并节省时间。 我们没有试图写所有的内容,而是用txt文件的每一行列出一个列表,然后使用“for”将它们逐个写在一个新文件中

import os

inpath = r"C:/Users/user/Desktop/insert/"
expath = r"C:/Users/user/Desktop/export/"
encoding1 = "utf-16"
encoding2 = "ansi"


 
input_filename = "text.txt"
input_pathfile = os.path.join(inpath, input_filename)

output_filename = "new_text.txt"
output_pathfile = os.path.join(expath, output_filename)



with open(input_pathfile, 'r', encoding=encoding1) as file_in:
    lines = []
    for line in file_in:
        lines.append(line)

with open(output_pathfile, 'w', encoding='ANSI') as f:
    for line in lines:
        f.write(line)

相关问题 更多 >

    热门问题