一个大的.csv文件通常包含一行,其中大约3000个数据元素用逗号分隔。此数据中约有50%是绒毛(非增值数据),可以删除。如何通过多次删除字符串来删除该绒毛?我是Python的新手。
我可以读取数据。我无法更改数据。下面代码中的变量x将是逐行更改的字符串。
with open('som_w.csv','r+') as file:
reader = csv.reader(file, delimiter=',')
for i, row in enumerate(reader):
print(row)
print(i+1)
writer = csv.writer(file, delimiter=',')
for row in writer:
x = re.sub(r'<.*?>',"",writer)
print(x)
file.close()
当前错误是csv.writer无法迭代。我相信我正在走错路。
答案 0 :(得分:0)
看看评论。我认为应该有帮助。
with open('som_w.csv','r+') as file:
reader = csv.reader(file, delimiter=',')
for i, row in enumerate(reader):
print(row)
print(i+1)
writer = csv.writer(file, delimiter=',') # isn't `file` out of scope?
for row in writer:
x = re.sub(r'<.*?>',"",writer)
print(x)
file.close() # while using `with`, it's unnecessary to close file.
答案 1 :(得分:0)
看看this post,有一个函数示例,该函数可以使用正则表达式替换所有行。
然后尝试:
import fileinput
import sys
def replaceAll(file, searchExp, replaceExp):
with fileinput.input(file) as f:
for line in f:
if searchExp in line:
line = line.replace(searchExp, replaceExp)
sys.stdout.write(line)
replaceAll('som_w.csv', r'<.*?>', "")