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

问题描述 投票:0回答:1

我正在读取一个csv文件数据并将它们转换成字典,但是字典中的数据与\ r \ n像69 \ r,79 \ r在putty中或当我打开文件时,它将变为“69”并且这些双引号是隐藏的。如何删除这些?

我从堆栈溢出尝试了很多方法,但没有成功。我尝试了read.splitLines()或者替换方法,但问题是如果我删除\ r \ n那么它将删除第一行之后的所有数据但是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个文件中的所有数据转换为使用like的2个词典

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

现在,当我使用上述函数比较两个字典之间的数据和打印dataInDict时,它为我提供了来自两个字典的数据的输出,如下所示。我突出显示了\ r \ n值并且没有\ r \ n值。 enter image description here

但是当我尝试从中移除\ r时,它只给出了第一行并且没有给出所有行。由于这个\ r \ n,比较失败了

我正在使用xlsxWriter将输出写入excel表

python python-2.7 comparison
1个回答
1
投票

有几种方法可以解决这个问题。

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

假设你有这个代码:

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

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

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 
© www.soinside.com 2019 - 2024. All rights reserved.