【问题标题】:How to delete a previous row while reading a row of a csv file by python3如何在通过python3读取一行csv文件时删除前一行
【发布时间】:2018-05-13 11:04:52
【问题描述】:

我想从this wiki category. 中清理 12,000 个 wiki 页面,为此,我将所有 12,000 个 wiki 页面保存在一个 csv 文件中。当我的代码运行时,它会一一修改页面。如何在通过 python3 读取 CSV 文件的(下)行时删除前一行?如果可能的话,很容易将 csv 文件的剩余行分享给另一个 wiki 贡献者。否则,我应该手动打开 csv 文件以删除“已完成的行”。

我的代码被简化了;-

import csv
import pywikibot

with open('0.csv', 'r') as csvfile:
    reader = csv.reader(csvfile,delimiter="~")
    for row in reader:
    #if len(row) == 8:
        wikiPage1 = row[0]
        indexPages = row[5]
        print (wikiPage1)

        site = pywikibot.Site('ta', 'wiktionary')
        page1 = pywikibot.Page(site, wikiPage1)

        page1.text = page1.text.replace('Number','எண்')
        page1.save(summary=''Number --> எண்') 

【问题讨论】:

  • 最好写出你已经完成的记录,然后有第二个脚本生成一个新的不完整文件的文件。或者,您可以将要编辑的页面列表放入具有done 列的数据库(例如sqlite)中,并在完成每个页面时更新记录。 CSV 在这里并不是一个很好的选择。我想 Excel 文件也可能会更好。
  • 是的。我是手动做的。我的动机是避免这些步骤。 this 线程有用吗?如果是怎么样?

标签: python-3.x csv pywikibot


【解决方案1】:

从本站的两个网页page-1page-2了解到。

下面的代码做这个目标;-

#-*- coding: utf-8 -*-

#bringing the needed library modules
import csv, time, subprocess

#subprocess.call("sed -i `` 1d 0-123.csv",shell=True)

WAIT_TIME = 10
with open('0-123.csv', 'r') as csvfile:
    reader = csv.reader(csvfile,delimiter="~")
    for row in reader:
#removing the first line of the csv        
        subprocess.call("sed -i `` 1d 0-123.csv",shell=True)
        wiktHeader1 = row[0]#.decode('utf-8')
        print ()
        print (wiktHeader1 + ' = படி-1: விக்சனரியின் தலைப்புச்சொல்.')
        time.sleep(WAIT_TIME)

【讨论】:

    猜你喜欢
    • 2016-02-07
    • 2015-10-23
    • 1970-01-01
    • 1970-01-01
    • 2014-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多