python - 删除 csv 文件中正在使用的行

标签 python python-3.x csv

我正在尝试删除 csv 文件中正在使用的行,但我不确定如何处理它。我想删除文件中使用的第一行(不包括标题。我也想使用相同的文件,而不是创建一个新文件。这是我到目前为止所拥有的:

if os.path.isfile('test.csv'):
    with open("test.csv", "r") as f_input:
        csv_input = csv.reader(f_input)
        next(f_input) #skips header
        for row in csv_input:
            item_c =row[0]
            item_l = row[1]
            item_v = row[2]
            item_k = row[3]
            #DELETE THE ROW AFTER I GET THE INFO FOR EACH "item"

最佳答案

您可以重新创建输入文件并删除特定行,然后删除原始文件。您还可以通过将整个文件读入内存,然后删除一些行并重新创建它来完成此操作。然而,第二种方法风险更大。事情可能是这样的:

import csv
if os.path.isfile('test.csv'):
   with open('test.csv', 'r') as inp, open('test_edited.csv', 'w') as out:
      writer = csv.writer(out)
      reader = csv.reader(inp)
      writer.writerow(next(reader)) #copy headers
      for row in reader:
            item_c = row[0]
            item_l = row[1]
            item_v = row[2]
            item_k = row[3]
            if item_k != "someValue":  #Here you put any condition you want
               writer.writerow(row)    #Save only the rows that do not have someValue

最后你可以删除原来的文件

删除具有特定索引的行:

import csv
n_list = [1]
if os.path.isfile('test.csv'):
   with open('test.csv', 'r') as inp, open('test_edited.csv', 'w') as out:
      writer = csv.writer(out)
      reader = csv.reader(inp)
      writer.writerow(next(reader)) #copy headers
      index = 1
      for row in reader:
            item_c = row[0]
            item_l = row[1]
            item_v = row[2]
            item_k = row[3]
            if index not in n_list:  #Here you put any condition you want
               writer.writerow(row)    #Save only the rows that do not have someValue
            index+=1

关于python - 删除 csv 文件中正在使用的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51751960/

相关文章:

python - 检查非索引列是否在 Pandas 中排序

python - 基于 Python/MySQL 的管道中的字符编码问题

python - Python 的方式是什么来表达在 XML 文档中根据需要创建尽可能多的标签的 GREL 行?

python - 同时为两个或更多小部件提供悬停效果?

python - 操作系统错误 : [Errno 8] Exec format error - python

python - Cython:将单个元素分配给多维内存 View 切片

python - 有没有一种快速方法将 Pandas 列数据框转换为字符串列表?

python - 将 Python OrderedDict 写入 CSV

python - read_csv 没有正确读取此文件上的列名?

python - 如何从 Flask (Quart) 应用程序建立到 couchbase 服务器的异步连接?