为了处理多个CSV文件的内容,我必须从string-list-elements中过滤几个字符,最值得注意的是NULL值。为此,我尝试了几种来自网络的解决方案。其中之一是以下功能:不删除空值(Python)
def removeNull(rawString):
l = filter("\u0000", list(rawString))
newString = ''.join(l)
printUtil.printAll(newString, "\n")
return newString
但是,它总是给我TypeError: 'str' object is not callable
,终止程序。更复杂的解决方案并没有给我一个错误,但他们完全没有改变,NULL值仍然存在。
此外,如果我通过\u0000
与其他任何值交换,但None
(这不会导致更改),我会收到相同的错误消息。
希望有人能为我解决这个问题,因为经过4或5个小时的反复试验后,我的想法已经过时。
谢谢您的回答和建议!
解决问题:
错误消息源自一个事实,那我用"\u0000"
作为论据的过滤功能的构建。该特定问题的焦点两种有效的解决方案,在经过了必要的功能:
l = filter(lambda x: x != '\u0000',rawString)
或
l = filter(lambda x:ord(x) != 0, list(rawString))
这将删除空值。但是,对于给定的输入,它之后会返回乱码。我不知道为什么编写文件的过滤内容与原始文件以及控制台输出完全不同,因为只应删除空值。如果需要,我可以上传我的输入和输出文件,以更清楚地了解发生了什么。编辑:Joran Beasleys解决方案也是如此。 –
对于一些澄清:进入删除函数的字符串行为像一个字节数组时,将其保存到一个文件,至少我必须进入二进制写入模式。不幸的是,我不太了解这个结果,但至少现在它可行。 –