zoukankan      html  css  js  c++  java
  • Python 读、写、追加csv文件详细以及注意事项

    一、利用csv库创建文件

    首先导入csv文件

    import csv

    根据指定的path创建文件:

    1 def create_csv(path):
    2     with open(path, "w+", newline='') as file:
    3         csv_file = csv.writer(file)
    4         head = ["name","sex"]
    5         csv_file.writerow(head)

    注意:open函数的参数newline的作用,处理csv读写时不同换行符  linux:     windows:     mac:

    解释:

    On input,if newline is None, universal newlines mode is enabled. Lines in the input can end in ' ', ' ', or ' ', and these are translated into ' ' before being returned to the caller. If it is '', universal newline mode is enabled, but line endings are returned to the caller untranslated. If it has any of the other legal values, input lines are only terminated by the given string, and the line ending is returned to the caller untranslated.

    On output,if newline is None, any ' ' characters written are translated to the system default line separator,os.linesep. If newline is '', no translation takes place. If new line is any of the other legal values, any ' ' characters written are translated to the given string.



    往文件中追加内容:

    1 def append_csv(path):
    2     with open(path, "a+", newline='') as file: # 处理csv读写时不同换行符  linux:
        windows:
        mac:
    
    3         csv_file = csv.writer(file)
    4         datas = [["hoojjack", "boy"], ["hoojjack1", "boy"]]
    5         csv_file.writerows(datas)

    读文件内容:

    1 def read_csv(path):
    2     with open(path,"r+") as file:
    3         csv_file = csv.reader(file)
    4         for data in csv_file:
    5             print("data:", data)

    测试:

    1 def main():
    2     path = "example.csv"
    3     create_csv(path)
    4     append_csv(path)
    5     read_csv(path)
    6 
    7 if __name__ == "__main__":
    8     main()

    输出:

    data: ['name', 'sex']
    data: ['hoojjack', 'boy']
    data: ['hoojjack1', 'boy']

    二、利用pandas添加、读取文件

    def pandas_write(path):
        name = ["hoojjack", "hoojjack1"]
        sex = ["boy", "boy"]
        #字典中的key值即为csv中列名
        data_frame = pd.DataFrame({"name":name, "sex":sex})
        #将DataFrame存储为csv,index表示是否显示行名,default=True,path指写入的文件名称
        data_frame.to_csv(path, index=True, sep='')

    open函数读写参数说明:

    w:以写方式打开, 
    a:以追加模式打开 (从 EOF 开始, 必要时创建新文件) 
    r+:以读写模式打开 
    w+:以读写模式打开 (参见 w ) 
    a+:以读写模式打开 (参见 a ) 
    rb:以二进制读模式打开 
    wb:以二进制写模式打开 (参见 w ) 
    ab:以二进制追加模式打开 (参见 a ) 
    rb+:以二进制读写模式打开 (参见 r+ ) 
    wb+:以二进制读写模式打开 (参见 w+ ) 
    ab+:以二进制读写模式打开 (参见 a+ )

    Refernece:

    [1] https://www.jianshu.com/p/0b0337df165a

    [2] https://blog.csdn.net/lwgkzl/article/details/82147474

  • 相关阅读:
    虚拟机中对centOS7.4配置静态ip
    mybatis使用中出现的错误!
    http中get和post方法区别
    java中堆和栈的区别
    struts2工作流程
    springmvc工作流程
    JDBC访问数据库流程
    并行程序设计模式-Master-Worker模式-Guarded Suspension模式-不变模式-生产者-消费者模式的理解
    Future模式个人理解
    分布式系统一致性问题和Raft一致性算法
  • 原文地址:https://www.cnblogs.com/hoojjack/p/9670715.html
Copyright © 2011-2022 走看看