精华内容
下载资源
问答
  • 今天老唐简单记录一下使用自带的 csv 库怎么进行 Python文件读写操作,主要包括新建文件、追加写入、读取文件等操作。其实还是比较简单的,但是看到网上有人给了个错误的示范,还是有必要写个正确的。一、Python ...

    bandwagonhost-top.png

    Python 读写 CSV 文件最简单的方法是使用自带的 csv 库,复杂点的可以使用 pandas。今天老唐简单记录一下使用自带的 csv 库怎么进行 Python 的文件读写操作,主要包括新建文件、追加写入、读取文件等操作。其实还是比较简单的,但是看到网上有人给了个错误的示范,还是有必要写个正确的。

    一、Python 对 CSV 文件的读写操作

    oldtangcom_python_csv-1024x683.jpeg

    新建文件:import csv

    def create_csv():

    path = "aa.csv"

    with open(path,'w') as f:

    csv_write = csv.writer(f)

    csv_head = ["good","bad"]

    csv_write.writerow(csv_head)

    追加写入:def write_csv():

    path = "aa.csv"

    with open(path,'a') as f:

    csv_write = csv.writer(f)

    data_row = ["1","2"]

    csv_write.writerow(data_row)

    读取文件:def read_csv():

    path = "aa.csv"

    with open(path,"rb") as f:

    csv_read = csv.reader(f)

    for line in csv_read:

    print line

    二、更多操作说明w:以写方式打开,

    a:以追加模式打开 (从 EOF 开始, 必要时创建新文件)

    r+:以读写模式打开

    w+:以读写模式打开 (参见 w )

    a+:以读写模式打开 (参见 a )

    rb:以二进制读模式打开

    wb:以二进制写模式打开 (参见 w )

    ab:以二进制追加模式打开 (参见 a )

    rb+:以二进制读写模式打开 (参见 r+ )

    wb+:以二进制读写模式打开 (参见 w+ )

    ab+:以二进制读写模式打开 (参见 a+ )

    其实就主要把前面几个掌握就行,加个 b 就是二进制。

    展开全文
  • (只是传递,基础知识也是根基)Python读取数据,存入Excel打开的CSV格式文件内!这里需要用到bs4,csv,codecs,os模块。废话不多说,直接写代码!该重要的内容都已经注释了,剩下不懂的可以自己查询一下,或者QQ...

    1115722-20180614153309758-752920669.png

    (只是传递,基础知识也是根基)

    Python读取数据,并存入Excel打开的CSV格式文件内!

    这里需要用到bs4,csv,codecs,os模块。

    废话不多说,直接写代码!该重要的内容都已经注释了,剩下不懂的可以自己查询一下,或者QQ群内问我。QQ群在以往的博客中!

    1 #coding:utf-8

    2 from bs4 importBeautifulSoup3 importbs44 importos5 importtime6 importcsv7 importcodecs8

    9 #读取XML内的文件数据并存入CSV格式的文件--可使用EXCEL打开

    10 defopen_file():11 file_folder= 'C:\Users\Administrator\Desktop\File\Filename' ##文件夹位置

    12 ifos.path.isdir(file_folder):13 for fileName inos.listdir(file_folder):14 #print fileName

    15 info(fileName) ##读取文件名字

    16 definfo(fileName):17 soup = bs4.BeautifulSoup(open('C:/Users/Administrator/Desktop/File/Filename/'+fileName))18 a = soup.find_all('mxxx')19 info =[]20 for i ina:21 dt=[]22 dt.append(i.find('xx').get_text().strip())23 dt.append( i.find('xx').get_text().strip())24 dt.append(i.find('xx').get_text().strip())25 dt.append(i.find('xx').get_text().strip()+' ')26 dt.append( i.find('xx').get_text().strip())27 dt.append(i.find('xx').get_text().strip())28 dt.append(float( i.find('xx').get_text().strip()) + float(i.find('xx').get_text().strip()))29 info.append(dt)30 with open("Ex_info.csv","ab+") as csvfile: ##“ ab+ ”去除空白行,又叫换行!

    31 csvfile.write(codecs.BOM_UTF8) ##存入表内的文字格式

    32 writer = csv.writer(csvfile) #存入表时所使用的格式

    33 writer.writerow(['表头','表头'])34 writer.writerows(info) #写入表

    35

    36 if __name__ == '__main__':37 open_file()

    这里主要三部分,我调用的测试使用的xml内的数据,这里使用的bs4来解析xml文件。

    解释第一部分:

    打开文件夹,并获取到文件的名字,因为文件有多个,所以使用了os模块的函数来打开文件

    1 file_folder= 'C:\Users\Administrator\Desktop\File\Filename' ##文件夹位置

    2 ifos.path.isdir(file_folder):3 for fileName inos.listdir(file_folder):4 #print fileName

    5 info(fileName) ##读取文件名字

    fileName就是我们所获取的文件的名字。

    第二部分:

    获取文件名字后需要使用bs4模块来打开文件,因为多个文件,所以将解析过程写入函数内。

    1 definfo(fileName):2 soup = bs4.BeautifulSoup(open('C:/Users/Administrator/Desktop/File/Filename/'+fileName))3 a = soup.find_all('mxxx')4 info =[]5 for i ina:6 dt=[]7 dt.append(i.find('xx').get_text().strip())8 dt.append( i.find('xx').get_text().strip())9 dt.append(i.find('xx').get_text().strip())10 dt.append(i.find('xx').get_text().strip()+' ')11 dt.append( i.find('xx').get_text().strip())12 dt.append(i.find('xx').get_text().strip())13 dt.append(float( i.find('xx').get_text().strip()) + float(i.find('xx').get_text().strip()))14 info.append(dt)

    打开文件夹后取出文件,并解析后使用BeautifulSoup的解析网页方法来获取数据,'mxxx'与'xx'都是树的名字。

    第三部分:

    将数据写入csv文件,这里的数据都是List格式,并需要遍历。

    1 with open("Ex_info.csv","ab+") as csvfile: ##“ ab+ ”去除空白行,又叫换行!

    2 csvfile.write(codecs.BOM_UTF8) ##存入表内的文字格式

    3 writer = csv.writer(csvfile) #存入表时所使用的格式

    4 writer.writerow(['表头','表头','表头','表头'])5 writer.writerows(info) #写入表

    这里的表头要和我们上面获取的数据列一致,不然会出现错误。写入文件的格式有 “ w ”," a+ "," ab+ "等,这里使用的是“ ab+ ”,去除空行!

    还有我们如果存入的数据是1000000000这样的,在excel内是E+17的显示,所有在获取数据的时候最后面加 “ ”。最后写入表内,并打开!

    展开全文
  • 打算自己先创建一个csv文件,然后后续每个对话出错的话,就append追加写入到csv中。其中希望用逗号分隔。而句子中如果有逗号,则用双引号扩起来python csv期间遇到:但是用代码:with codecs.open...

    此处希望在python中,将A和B的QA对话,中错误的对话,保存到csv中。

    打算自己先创建一个csv文件,然后后续每个对话出错的话,就append追加写入到csv中。

    其中希望用逗号分隔。而句子中如果有逗号,则用双引号扩起来

    python csv

    期间遇到:

    但是用代码:

    with codecs.open(gCurInvalidSentenceFullFilename, "w", encoding="utf-8") as csvFp:

    csvListWriter = csv.writer(csvFp)

    csvListWriter.writerow(rowValueList)

    出现个问题:

    每次写入,都不是追加,而是覆盖,导致之前的headers和row,都被覆盖,只剩最后一行了:

    1c58a6095805881c0562b0fa10661e7f.png

    python csv write append

    把文件打开模式从w换成a(append):

    # with codecs.open(gCurInvalidSentenceFullFilename, "w", encoding="utf-8") as csvFp:

    with codecs.open(gCurInvalidSentenceFullFilename, "a", encoding="utf-8") as csvFp:

    csvListWriter = csv.writer(csvFp)

    csvListWriter.writerow(rowValueList)

    结果:

    就可以了

    f6d8de696f399c5406047a82e3f5a2e9.png

    且可以注意到:

    如果字符串中包含有双引号,则会用两个双引号扩起来,字符串内部的原先单个的双引号变成2个双引号

    如果字符串中包含(本身csv的默认分隔符:)逗号,,则也会用左右双引号扩起来

    -》就消除了我之前的这方面的担心了。

    -〉然后去用工具打开看看表格效果:

    (1)VSCode中csv插件

    5c2aba2d119dc8e02a58394a120d1ed9.png

    -》

    8eb265ac30c4e5e26703820d2af2a9aa.png

    无法显示

    (2)excel

    4af28091ecc577387bdb8764e1f7a88a.png

    可以正常显示的。

    然后试了试:

    用list列表去保存值:

    rowValueList = [mongoId, invalidReason.name, sentence]

    with codecs.open(gCurInvalidSentenceFullFilename, "a", encoding="utf-8") as csvFp:

    csvListWriter = csv.writer(csvFp)

    csvListWriter.writerow(rowValueList)

    或者用dict去保存值(需要指定header)

    gInvalidSentenceCsvHeaders = ["MongoID’, "Reason’, "Sentence’]

    rowDict = {

    "MongoID": mongoId,

    # "Reason": str(invalidReason),

    "Reason": invalidReason.name,

    "Sentence": sentence

    }

    with codecs.open(gCurInvalidSentenceFullFilename, "a", encoding="utf-8") as csvFp:

    csvDictWriter = csv.DictWriter(csvFp, fieldnames=gInvalidSentenceCsvHeaders)

    csvDictWriter.writerow(rowDict)

    都是可以保存csv数据的。

    效果是:

    87c6b71fb0b41a15ce96615d756fe607.png

    展开全文
  • 一、将列表数据写入txt、csv、excel1、写入txtdef text_save(filename, data):#filename为写入CSV文件的路径,data为要写入数据列表.file = open(filename,'a')for i in range(len(data)):s = str(data[i]).replace...

    一、将列表数据写入txt、csv、excel

    1、写入txtdef text_save(filename, data):#filename为写入CSV文件的路径,data为要写入数据列表.

    file = open(filename,'a')

    for i in range(len(data)):

    s = str(data[i]).replace('[','').replace(']','')#去除[],这两行按数据不同,可以选择

    s = s.replace("'",'').replace(',','') +' ' #去除单引号,逗号,每行末尾追加换行符

    file.write(s)

    file.close()

    print("保存文件成功")

    2、写入csvimport csv

    import codecs

    def data_write_csv(file_name, datas):#file_name为写入CSV文件的路径,datas为要写入数据列表

    file_csv = codecs.open(file_name,'w+','utf-8')#追加

    writer = csv.writer(file_csv, delimiter=' ', quotechar=' ', quoting=csv.QUOTE_MINIMAL)

    for data in datas:

    writer.writerow(data)

    print("保存文件成功,处理结束")

    3、写入excel# 将数据写入新文件

    def data_write(file_path, datas):

    f = xlwt.Workbook()

    sheet1 = f.add_sheet(u'sheet1',cell_overwrite_ok=True) #创建sheet

    #将数据写入第 i 行,第 j 列

    i = 0

    for data in datas:

    for j in range(len(data)):

    sheet1.write(i,j,data[j])

    i = i + 1

    f.save(file_path) #保存文件

    二、将字典写入文件

    1、写入txtd = {'a':'aaa','b':'bbb'}

    s = str(d)

    f = open('dict.txt','w')

    f.writelines(s)

    f.close()

    3、写入exceldata_list = []

    # 循环得到每一个data

    for data in html1:

    # 循环得到data字典里的所有键值对的值

    for value in data.values():

    # 将得到的值放入空列表中

    data_list.append(value)

    # 创建一个新的列表生成式并赋给一个变量new_list.

    # 这个列表生成式主要是将数据每8个为一个新的元素存入新的列表中,即列表套列表

    new_list = [data_list[i:i + 8] for i in range(0, len(data_list), 8)]

    # 生成一个xlwt.Workbook对象

    xls = xlwt.Workbook()

    # 调用对象的add_sheet方法

    sheet = xls.add_sheet('sheet1', cell_overwrite_ok=True)

    # 创建我们需要的第一行的标头数据

    heads = ['chatDomain', 'chatUrl', 'code', 'pid', 'rank3', 'seller', 'shopId','venderId']

    ls = 0

    # 将标头循环写入表中

    for head in heads:

    sheet.write(0, ls, head)

    ls += 1

    i = 1

    # 将数据分两次循环写入表中 外围循环行

    for list in new_list:

    j = 0

    # 内围循环列

    for data in list:

    sheet.write(i, j, data)

    j += 1

    i += 1

    # 最后将文件save保存

    xls.save('案例.xls')

    3、写入csvimport csv

    mydict = {key1: value_a, key2: value_b, key3: value_c}

    f = open('dict.csv','wb')

    w = csv.DictWriter(f,mydict.keys())

    w.writerow(mydict)

    f.close()

    展开全文
  • python创建并写入csv文件

    万次阅读 2019-03-07 21:46:25
    参考链接: ... import csv csvFile=open("C:/Users/hasee/Desktop/wikispider/test.csv",'w',newline='') try: writer=csv.writer(csvFile) w...
  • (薛之谦么么哒),无聊的我翻到了一篇关于csv文件读取与写入的帖子,作为测试小白的我一直对python情有独钟,顿时心血来潮,决定小搞他一下,分享给那些需要的小白,对于python大神们来说,简直就是小儿科,对于我...
  • 网页爬取到的数据,或经过批量转换、清洗后的数据,需要写入并保存为csv格式的文件。...一开始先创建一个空的csv文件,表头信息同时写入。如果csv文件已存在,覆盖原文件。 import os import numpy as np
  • 今天天气"刚刚好"(薛之谦么么哒),无聊的我翻到了一篇关于csv文件读取与写入的帖子,作为测试小白的我一直对python情有独钟,顿时心血来潮,决定小搞他一下,分享给那些需要的小白,对于python大神们来说,简直...
  • 创建并写入csv文件 import csv csvFile=open("C:/Users/hasee/Desktop/wikispider/test.csv",'w',newline='') try: writer=csv.writer(csvFile) writer.writerow(('number','number plus 2','number times 2')) ...
  • 在ubuntu下,新建.csv文件的方法是使用LibreOffice来创建一个数据表,然后我们把表格存储为.csv的格式: “Save as”菜单把我们的表格存为一个CSV的文件格式:命名为csvData.csv: name,num zhangsan,123 ...
  • 导入之前的CSV文件 新建一个py文件 类似29课内容,创建一个项目的虚拟环境 模拟把程序中数据写入CSV文件(注意区分写入一行和写入多行函数区别) 结果:每行多加了一个空行 修改代码,修该改open方法...
  • 这是一个读取旧文件并在单个传递中写入新文件的示例.DictReader实例将文件的每个逻辑行或行作为字典返回,其字符串是字段名称.您可以显式指定字段名称,也可以从文件的第一行读取它们,如示例所示.您必须在创建...
  • python处理CSV文件格式数据

    万次阅读 2017-10-11 10:41:13
    1、CSV文件要在文本文件中存储数据,最简单的方式是将数据作为一系列以逗号分隔的值(CSV)写入文件,这样的文件称为CSV文件。2、分析CSV文件头1)调用csv.reader()将存储的文件对象作为实参传递给它,从而创建一个...
  • 当时不记得如何生成随机数字的方法,没有写出来... 我们先看看实现的效果: 没有注释的代码,看起来简洁: ...import csv list = [] file_path = 'user_id.csv' for i in range(1, 101): ID = random.rand...
  • python-读取并写入csv

    2021-01-09 16:27:58
    使用python读取csv文件 要读取的csv文件为“训练用数据.csv” 新创建的写内容的文件为“222.csv” import csv csv_file=csv.reader(open('训练用数据.csv','r')) f = open('222.csv','w',newline='') writer = csv....
  • python CSV文件读取

    2020-07-01 16:39:52
    python CSV文件读取 1、创建.csv 文件并创建writer 对象。 # 引用csv模块。 import csv # 调用open()函数打开csv文件,传入参数:文件名“demo.csv”、写入模式“w”、newline=''、encoding='utf-8'。 csv_file = ...
  • python实现创建数据表并写入数据

    千次阅读 2019-07-26 23:23:51
    将公共部分抽象出来做成单独的模块,比如我提供了一个数据库写操作的函数,只要明确了数据输入的格式,可以从csv文件、json文件、txt文件、Excel文件进行原始数据文件的读取然后调用写操作函数完成数据的写入操作,...
  • 文章目录拖更通知重要前提编写程序用的工具写代码喽导入CSV创建或打开文件文件放入变量写入一行数据写入多行数据保存关闭文件实例程序完美结束 拖更通知 以后作者的文章更新时间为周六日,敬请谅解!感谢各位...
  • Python 标准库 csv —— csv 文件的读写

    千次阅读 2017-05-12 23:20:59
    csv 文件,逗号分割文件。1. 写入并生成 csv 文件注意这里是写入并生成,而非创建并写入,也即可自动创建一个不存在的 csv 文件
  • import json import csv with open('information.json', 'r') as f: ...# 创建打开文件并写入的对象f f = open('data.csv', 'w') # 创建csv对象 csv_write = csv.writer(f) # 写入数据 csv_write.writerow(datas[...
  • 1. 创建并打开一个.csv文件 f = open('file_name.csv', 'w', encoding='utf-8') 2. 按行写入 csv_writer = csv.writer(f) for i in range(start, end): csv_writer.writerow(data[i]) 这样就将data中第start行到...
  • 读取csv并写入xml(创建新的xml) #编辑xml文件的函数 def csvtoxml(fname): with open(fname, 'r') as f: reader = csv.reader(f) #读取csv文件 a = Element('annotation') b = SubElement(a, 'fol
  • CSV文件操作】Python

    2021-01-20 02:18:07
    (1)创建一个CSV文件(文件名自定),将以下数据通过python程序写入到该文件中。 星座,开始月日,结束月日 水瓶座,01.20,02.18 双鱼座,02.19,03.20 白羊座,03.21,04.19 金牛座,04.20,05.20 双子座,05.21,06.21 ...
  • CSV文件用记事本打开后一般为由逗号隔开的字符串,其处理方法用Python的代码如下。为方便各种程度的人阅读在代码中有非常详细的注释。 1.查询指定列,保存到新的csv文件。 # -*- coding: utf-8 -*- ''''' Author:...

空空如也

空空如也

1 2 3 4 5
收藏数 88
精华内容 35
关键字:

python创建csv文件并写入

python 订阅