Python替换CSV文件的单元格

布莱恩

我有一个HTML抓取器,可从网站上提取商品名称和价格。有时我想运行此刮板以更新价格,因此我也希望保留旧的刮板。

我第一次保存标题和价格的csv看起来像这样:

Title1, price1, 'END'
Title2, price2, 'END'
Title3, price3, 'END'

我使用以下方法将新价格与旧价格进行比较:

ind = row.index('END')
lastprijs = row[ind-1]
print lastprijs
if lastprijs != prijstitel:
    row.pop(ind)
    row.append(prijstitel)
    row.append("END")

如果已找到(并设置)值,则使用

with open('out.csv', 'a') as out:
    tester = csv.writer(out)
    tester.writerow(row)

如果未找到任何值,则使用同一行更新csv:

else: 
    with open('out.csv', 'a') as out:
        tester = csv.writer(out)
        row.append("addedddd")   #add a new line.
        tester.writerow(row)

但是,我的csv的输出在运行后如下所示:

Item1, price1, 'END'
Item2, price2, 'END'
Item3, price3, 'END'
Item1, price1, 'END'
item1, price1, 'END'
Item2, price2, 'END'
Item3, price3, 'END'
Item1, price1, 'END'
item1, price1, 'END'
Item2, price2, 'END'
Item2, price2, 'END'
Item3, price3, 'END'
Item1, price1, 'END'

依此类推...我该如何解决?

**完整代码**

def updateprices(prijstitel, titelprijs):
  with open('pricewatch.csv', 'r') as csvfileadjust:
    filereader = csv.reader(csvfileadjust)
    print titelprijs
    if titelprijs == "Gembird externe Hardeschijf behuizing met USB 2.0 aansluiting":
        prijstitel = 'EDITED PRIJS!'
    for row in filereader:
        header = row
        print header
        print " ---- "
        if titelprijs in row:
            ind = row.index('END')
            lastprijs = row[ind-1]
            print lastprijs
            if lastprijs != prijstitel:
                row.pop(ind)
                row.append(prijstitel)
                row.append("END")
            with open('out.csv', 'a') as out:
                tester = csv.writer(out)
                tester.writerow(row)
        else: 
            with open('out.csv', 'a') as out:
                tester = csv.writer(out)
                row.append("addedddd")   #add a new line.
                tester.writerow(row)
用户名

你的问题是对的,

这可以解决您的问题

x=0
while x < 20:  Or length of csv file.
   updateprices("10,00","TITELS", x)
   x+=1

def updateprices(prijstitel, titelprijs, var):
  with open(csvfile, 'r') as csvfileadjust:  #open the file
    filereader = csv.reader(csvfileadjust)
    row = list(islice(filereader,var+1))[-1]  #get all lines till var+1
    if titelprijs in row:  #if the title is in the row
        ind = row.index('END')  #search for END in that List
        lastprijs = row[ind-1] 
        print lastprijs
        if lastprijs != prijstitel:  #if lastprijs is not equal to prijstitel ( 9,99 != 10,00)
            row.pop(ind)  #drop the last item in list ("END")
            row.append(prijstitel)  #add the new prijstitel (10,00)
            row.append("END")  
        with open('out.csv', 'a') as out:
            tester = csv.writer(out)  
            tester.writerow(row)   #Write to csv file
    else:   #if the title is not in the row
        with open('out.csv', 'a') as out:
            tester = csv.writer(out)
            tester.writerow(row)  #write (or copy) the line

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在csv文件单元格中打印新行

来自分类Dev

将字符串与CSV文件中的单元格匹配并返回相邻的单元格

来自分类Dev

用字符替换空白单元格

来自分类Dev

MATLAB:如何从CSV文件填充单元格数组?

来自分类Dev

将单元格数组写入CSV文件

来自分类Dev

遍历拆分值单元格并替换

来自分类Dev

EXCEL VBA替换单元格的内容

来自分类Dev

Python:如何检查CSV文件中的单元格是否为空?

来自分类Dev

在MATLAB中替换单元格的值

来自分类Dev

我无法在Python中读取csv文件。结果有很多行而不是单元格

来自分类Dev

在R中用“ no”替换空白单元格

来自分类Dev

从Excel创建CSV文件时删除空白单元格

来自分类Dev

替换jQuery选择的单元格范围?

来自分类Dev

如何使用python在CSV文件中拆分合并的单元格

来自分类Dev

使用python替换csv文件中列而不是标题中的单元格

来自分类Dev

使用python将xml数据转储到csv文件中的单元格中

来自分类Dev

python pandas:用字典中的值替换单元格

来自分类Dev

Python / Pandas-将空单元格写入csv文件(而不是零)

来自分类Dev

如何删除csv python中的空单元格?

来自分类Dev

使用Python读取CSV文件行中的最后一个非空单元格

来自分类Dev

替换数据框中的单元格

来自分类Dev

Python-如何根据单元格从CSV删除重复的单元格/行

来自分类Dev

替换单元格中的单词

来自分类Dev

读取csv文件中的单元格

来自分类Dev

将tsv文件中特定单元格的内容替换为其他单元格的已编辑内容

来自分类Dev

如何在python的csv单元格中插入字符?

来自分类Dev

如何使用python根据同一csv文件中的其他列单元格更新列单元格中的值?

来自分类Dev

如果单元格以特定数字开头并制作 CSV 文件,则更改单元格的值

来自分类Dev

用python写入一个单元格中有多行的csv文件

Related 相关文章

  1. 1

    在csv文件单元格中打印新行

  2. 2

    将字符串与CSV文件中的单元格匹配并返回相邻的单元格

  3. 3

    用字符替换空白单元格

  4. 4

    MATLAB:如何从CSV文件填充单元格数组?

  5. 5

    将单元格数组写入CSV文件

  6. 6

    遍历拆分值单元格并替换

  7. 7

    EXCEL VBA替换单元格的内容

  8. 8

    Python:如何检查CSV文件中的单元格是否为空?

  9. 9

    在MATLAB中替换单元格的值

  10. 10

    我无法在Python中读取csv文件。结果有很多行而不是单元格

  11. 11

    在R中用“ no”替换空白单元格

  12. 12

    从Excel创建CSV文件时删除空白单元格

  13. 13

    替换jQuery选择的单元格范围?

  14. 14

    如何使用python在CSV文件中拆分合并的单元格

  15. 15

    使用python替换csv文件中列而不是标题中的单元格

  16. 16

    使用python将xml数据转储到csv文件中的单元格中

  17. 17

    python pandas:用字典中的值替换单元格

  18. 18

    Python / Pandas-将空单元格写入csv文件(而不是零)

  19. 19

    如何删除csv python中的空单元格?

  20. 20

    使用Python读取CSV文件行中的最后一个非空单元格

  21. 21

    替换数据框中的单元格

  22. 22

    Python-如何根据单元格从CSV删除重复的单元格/行

  23. 23

    替换单元格中的单词

  24. 24

    读取csv文件中的单元格

  25. 25

    将tsv文件中特定单元格的内容替换为其他单元格的已编辑内容

  26. 26

    如何在python的csv单元格中插入字符?

  27. 27

    如何使用python根据同一csv文件中的其他列单元格更新列单元格中的值?

  28. 28

    如果单元格以特定数字开头并制作 CSV 文件,则更改单元格的值

  29. 29

    用python写入一个单元格中有多行的csv文件

热门标签

归档