python 操作csv文件写入顺序不对

 握住每一缕光 发布于 2022-10-28 22:40

我是初学者不太懂

  1. 为什么在终端显示是正确的顺序到了csv 文件中就是另一回事了呢

  2. 还有就是 csv 文件怎么可以运行之后继续填写 而不是清空文件呢?


图片:


代碼:

import urllib.request
import re
import bs4 
import csv
from bs4 import BeautifulSoup

url="http://10.104.65.9/home/part/shuiQing.jsp"
data=urllib.request.urlopen(url).read()
data=data.decode('UTF-8')

soup=BeautifulSoup(data,"html.parser")
foundtxt=soup.find_all('td',height='22')

rol=[]
index=0

#with open(r'C:\Users\skyb52\Desktop\12.csv','wb') as csvfile:
with open(r'C:\Users\skyb52\Desktop\12.csv','w',newline='') as csvfile:
   spamwriter = csv.writer(csvfile,dialect='excel')
   for i in foundtxt:
       rol.append(i.string)
       index=index+1
       if index==3:
           spamwriter.writerow({rol[0],rol[1],rol[2]})
           print(rol[0],rol[1],rol[2])
           rol=[]
           index=0
   csvfile.close()  

最后添加上 内网网站源代码:



站名 水位(m) 流量(m3/s)
小浪底 134.63 565
花园口 89.05 445
夹河滩 72.58 400
高村 58.98 360
孙口 44.29 358
艾山 36.82 225
泺口 25.7 207
利津 9.36 76.5
1 个回答
  • 你寫到 csv 的代碼:

    spamwriter.writerow({rol[0],rol[1],rol[2]})

    你寫了一個 set 出來,他是無序的,而你 print 的時候是有序的:

    print(rol[0],rol[1],rol[2])

    結果自然不同


    不清空而是附加新的資料上去的作法,在於使用 open 打開文檔時,要使用 'a' (append) 模式:

    with open(r'C:\Users\skyb52\Desktop\12.csv','w',newline='') as csvfile:
                                                ^^^
                                           寫入模式,會覆蓋掉原本的資料從頭開始寫入

    改成:

    with open(r'C:\Users\skyb52\Desktop\12.csv','a',newline='') as csvfile:
                                                ^^^
                                           附加模式,會從文件最後開始寫入
    2022-11-12 01:45 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有