JZY_71 2024-06-30 11:28 采纳率: 0%
浏览 2

Python消除文字内空格_问题报错

我想也写一个,可以把D盘“a.txt”文字中空格消除后的文字,打印到“b.txt”文件中的代码(如下)。
但是会有这样子的报错(如图),有没有佬帮助一下;


with open(r"d:/a.txt", 'r') as rf:
    with open(r"d:/b.txt", 'w') as wf:
        for item in rf:
            for i in range(0, len(item)):
                if item[i] != ' ':
                    wf.write(item[i])

img

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-06-30 11:28
    关注

    引自免费微信小程序:皆我百晓生

    你的代码中存在一个常见的问题,即在读取文件时遇到了编码问题。在Windows系统中,默认情况下,一些文本文件的编码可能是GBK编码。当你的代码试图使用默认的utf-8编码来读取这些文件时,就会引发UnicodeDecodeError错误。

    解决这个问题的一个简单方法是在打开文件时指定正确的编码方式。你可以尝试使用'GBK'编码来读取文件。以下是修改后的代码:

    with open(r"d:/a.txt", 'r', encoding='gbk') as rf:  # 使用GBK编码读取文件
        with open(r"d:/b.txt", 'w', encoding='utf-8') as wf:  # 使用UTF-8编码写入文件
            for item in rf:
                # 使用join函数去除空格并写入新文件
                no_space_line = ''.join(item.split())
                wf.write(no_space_line + '\n')  # 每行末尾添加换行符,保持格式
    

    这段代码首先使用GBK编码打开并读取"a.txt"文件,然后使用UTF-8编码打开并写入"b.txt"文件。在读取每一行时,我们使用split()函数以空格为分隔符将字符串拆分为一个列表,然后使用join()函数将列表中的元素连接成一个没有空格的字符串。最后,我们将处理后的字符串写入新文件,并在每行的末尾添加一个换行符以保持格式。这样就能够消除文本中的空格并保存到新文件中。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月30日