如何从Excel工作表中的单元格中删除或忽略控制字符\r或" "?



我正在读取csv文件数据并将其转换为字典,但是字典中的数据呈 r,如 r,putty中的79 r,或者当我打开文件时,它以" 69"的形式出现,这些双引号被隐藏了。如何删除这些?

我尝试了堆栈溢出的多种方法,但没有奏效。我尝试了read.splitlines()或替换方法,但是问题是,如果我删除 r,那么它将在第一行之后删除所有数据,但是Excel具有很多数据。

是否还有其他方法可以忽略控制字符并在Excel或Putty中获取所有数据。请帮忙!!!!!

以下是代码:

def fileToDict(filepath):
    dataInDict = {}
    with open(filepath) as f:
        data = f.readlines()
        for idx, d in enumerate(data):
            dlist = d.strip('n').split('t')
            dataInDict[idx] = dlist
        f.close()
    return dataInDict 

在此处添加更多详细信息...我使用此功能将来自2个文件的所有数据转换为2个字典,使用

Dict1 =  fileToDict(file1)  
Dict2 =  fileToDict(file2) 

现在,当我使用上述功能比较两个字典之间的数据并打印数据时,它为我提供了来自两个字典的数据,如下所示。我突出了 r值,没有 r值。在此处输入图像描述

但是,当我尝试从中删除 r时,它只会给我第一行,而不会给出所有行。由于这个 r,比较失败

我正在使用xlswriter

将上述输出写入Excel表

有几种解决此问题的方法。

您可以在循环中使用.strip方法。

假定您有此代码:

mydict = {'one': '69r', 'two': '79r'}

您可以迭代它,并用剥离的版本中的每个键中的每个值替换每个值:

for i in mydict:
    mydict[i] = mydict[i].strip('r')

输出:

{'one': '69', 'two': '79'}

编辑

由于作者添加了代码片段:

def fileToDict(filepath):
    dataInDict = {}
    with open(filepath) as f:
        data = f.readlines()
        for idx, d in enumerate(data):
            dlist = d.strip('n').split('t')
            dataInDict[idx] = dlist
        f.close()
    for i in dataInDict:                           # Iterate through your new dict
        dataInDict[i] = dataInDict[i].strip('r')  # Strip each value after occurance of 'r'
    return dataInDict 

最新更新