我正在读取一个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表
有几种方法可以解决这个问题。
你可以在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