使用Python解析大型.csv文件行

使用Python解析大型.csv文件行,python,csv,Python,Csv,一个大的.csv文件有一个典型的行,其中大约有3000个数据元素,用逗号分隔。大约50%的数据是蓬松的(非增值数据),可以删除。如何通过多次删除字符串来删除此绒毛?我是Python新手 我可以读取数据。我无法更改数据。下面代码中的变量x是按行更改的字符串 with open('som_w.csv','r+') as file: reader = csv.reader(file, delimiter=',') for i, row in enumerate(reader):

一个大的.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()
以open('som_w.csv','r+')作为文件的
:
reader=csv.reader(文件,分隔符=',')
对于i,枚举(读取器)中的行:
打印(行)
打印(i+1)
writer=csv.writer(文件,分隔符=',')
对于写入程序中的行:
x=re.sub(r'','',writer)
打印(x)
file.close()文件

当前错误是csv.writer不可编辑。我相信我走错了路。

看看评论。我认为这应该有帮助

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.
以open('som_w.csv','r+')作为文件的
:
reader=csv.reader(文件,分隔符=',')
对于i,枚举(读取器)中的行:
打印(行)
打印(i+1)
writer=csv.writer(文件,分隔符=',')#'file'是否超出范围?
对于写入程序中的行:
x=re.sub(r'','',writer)
打印(x)
file.close()#在使用“with”时,没有必要关闭文件。

看看评论。我认为这应该有帮助

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.
以open('som_w.csv','r+')作为文件的
:
reader=csv.reader(文件,分隔符=',')
对于i,枚举(读取器)中的行:
打印(行)
打印(i+1)
writer=csv.writer(文件,分隔符=',')#'file'是否超出范围?
对于写入程序中的行:
x=re.sub(r'','',writer)
打印(x)
file.close()#在使用“with”时,没有必要关闭文件。
看,这里有一个函数示例,它使用正则表达式替换所有行

然后试试这个:

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'<.*?>', "")
导入文件输入
导入系统
def replaceAll(文件、搜索表达式、替换表达式):
使用fileinput.input(文件)作为f:
对于f中的行:
如果searchExp在同一行:
line=line.replace(searchExp,replaceExp)
系统标准输出写入(行)
replaceAll('som_w.csv',r'',“”)
看,这里有一个函数示例,它使用正则表达式替换所有行

然后试试这个:

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'<.*?>', "")
导入文件输入
导入系统
def replaceAll(文件、搜索表达式、替换表达式):
使用fileinput.input(文件)作为f:
对于f中的行:
如果searchExp在同一行:
line=line.replace(searchExp,replaceExp)
系统标准输出写入(行)
replaceAll('som_w.csv',r'',“”)

我是否必须重新打开“文件”或将re.sub()放在“With”中的某个位置才能开始更改每一行?是否要将结果写入同一文件som_w.csv'在您的示例中,我是否必须重新打开“文件”或将re.sub()放在“With”中的某个位置才能开始更改每一行?是否要将结果写入同一文件在你的例子中,试试熊猫图书馆试试熊猫图书馆我有点理解。因为replaceAll在第二个参数中有一个正则表达式,所以我假设需要导入re。在任何一种情况下(有或没有“重新导入”),程序运行时都不会出现错误。但是当我打开som_w.csv时,内容看起来是一样的。我有些理解。因为replaceAll在第二个参数中有一个正则表达式,所以我假设需要导入re。在任何一种情况下(有或没有“重新导入”),程序运行时都不会出现错误。但是当我打开som_w.csv时,内容看起来是一样的。