【发布时间】:2018-04-02 02:10:01
【问题描述】:
我有一个非常大的数组,其中包含很多行和很多列(称为“self.csvFileArray”),它由我从 CSV 文件中读取的行组成,在处理 CSV 文件的类中使用以下代码...
with open(self.nounDef["Noun Source File Name"], 'rU') as csvFile:
for idx, row in enumerate(csv.reader(csvFile, delimiter=',')):
if idx == 0:
self.csvHeader = row
self.csvFileArray.append(row)
我有一个很长的替换映射字典,我想用它来替换...
replacements = {"str1a":"str1b", "str2a":"str2b", "str3a":"str3b", etc.}
我想在如下所示的类方法中执行此操作...
def m_globalSearchAndReplace(self, replacements):
# apply replacements dictionary to self.csvFileArray...
我的问题:使用“replacements”字典替换整个数组“self.csvFileArray”中的字符串最有效的方法是什么?
澄清说明:
我查看了this post,但似乎无法让它适用于这种情况。
另外,我想替换匹配的单词中的字符串,而不仅仅是整个单词。因此,使用“SomeCompanyName”:“xyz”的替换映射时,我可能会有类似“SomeCompanyName 公司拥有名为 abcSomeCompanyNamedef 的产品的专利。”这样的句子。您会注意到该字符串包含在句子中被替换两次……一次作为整个单词,一次作为嵌入字符串。
【问题讨论】:
-
能否请您添加您的阵列样本?
-
self.csvFileArray的最终目的是什么?是否应该将所有行都保存到一个新文件中? -
self.csvFileArray 表示从原始 CSV 文件中读取的所有行。我们正在构建一个“智能清理器”,它通过以不丢失“密钥完整性”的方式剥离机密数据来清理和转换数据,然后再将其写回到可以发送的新 CSV 文件中与供应商合作。
-
@MattR... 原始 CSV 太大。它们有超过 300 列和超过 1M 行。每行代表一个人。每列都有一个描述性特征。有些是非常基本的(名字、姓氏、年龄等)。有些是财务和健康信息。有些是提供多行 cmets 的段落。