我正在读取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
有几种解决此问题的方法。
您可以在循环中使用.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