首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除换行符,使其在读取Python中的excel文件时不会生成_x000D_

如何删除换行符,使其在读取Python中的excel文件时不会生成_x000D_
EN

Stack Overflow用户
提问于 2022-03-22 15:00:27
回答 1查看 1.3K关注 0票数 0

我尝试从一系列文件夹中读取Excel文件,其中每个文件夹都包含大量(数百个) Excel文件。这就是我一直在做的过程:

代码语言:javascript
复制
import numpy as np
import os
import glob

def read_files(path):
    df2 = pd.DataFrame()
    data = pd.DataFrame()
    for each in os.listdir(path):
        sub_path = path+"/"+each
        files = glob.glob(os.path.join(sub_path, "*.xlsx"))
        for f in files:  
            df = pd.read_excel(f)
            data = data.append(df)
    df2 = df2.append(data)
    return df2
df = read_files("...my_path")

但是,它将从excel文件读取的数据中的换行符转换为_x000D_。例如,如果特定的单元格值是:

代码语言:javascript
复制
abcde

它变成:

代码语言:javascript
复制
abcde_x000D_

如何消除这种情况,并在读取步骤中实际删除换行符,这样它就不会生成_x000D_

EN

回答 1

Stack Overflow用户

发布于 2022-03-22 15:16:48

基于this related question,Excel似乎使用\n chr(10)作为换行符,但是您的文件中有\r\n chr(13)chr(10)。避免这种情况的一种方法是执行替换操作。每次您看到\r\n时,都用\n替换它。在发送到pandas之前,我在缓冲区中修改文件。

代码语言:javascript
复制
import numpy as np
import os
import glob

def read_files(path):
    df2 = pd.DataFrame()
    data = pd.DataFrame()
    for each in os.listdir(path):
        sub_path = path+"/"+each
        files = glob.glob(os.path.join(sub_path, "*.xlsx"))
        for f in files:
            with open(f, 'rb') as fp:
                text = fp.read().replace(b'\r\n', b'\n')
            df = pd.read_excel(text)
            data = data.append(df)
    df2 = df2.append(data)
    return df2
df = read_files("...my_path")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71574319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档