GVKun编程网logo

在python 2或python 3中编写csv文件的可移植方式(采用python语言对csv文件写入)

18

本文将带您了解关于在python2或python3中编写csv文件的可移植方式的新内容,同时我们还将为您解释采用python语言对csv文件写入的相关知识,另外,我们还将为您提供关于4.python读

本文将带您了解关于在python 2或python 3中编写csv文件的可移植方式的新内容,同时我们还将为您解释采用python语言对csv文件写入的相关知识,另外,我们还将为您提供关于4.python读写csv文件、55 Python - 利用python生成CSV文件、CSV文件在Python中的几种处理方式、csv文件的中文如何正确在python中显示的实用信息。

本文目录一览:

在python 2或python 3中编写csv文件的可移植方式(采用python语言对csv文件写入)

在python 2或python 3中编写csv文件的可移植方式(采用python语言对csv文件写入)

在我的Windows机器上,我通常在python 2中执行此操作以编写一个csv文件:

import csv
f = open("out.csv","wb")
cr = csv.writer(f,delimiter=';')
cr.writerow(["a","b","c"])
f.close()

现在python 3禁止将文本文件编写为二进制文件,该代码段不再起作用。这样可行:

import csv
f = open("out.csv","w",newline='')
cr = csv.writer(f,"c"])
f.close()

问题是:newlinePython 2未知参数。

当然,省略换行符会导致csv文件中包含太多\r字符,因此是不可接受的。

我目前正在执行向后兼容的过程,以逐步从python 2迁移到python 3.5。我的所有模块中都有很多这样的语句。

我的解决方案是将代码嵌入到自定义模块中,然后自定义模块返回文件处理程序+
writer对象。在模块内部进行python版本检查,这使得使用我的模块的任何模块都可以在任何python版本上正常工作,而不会造成太多黑客攻击。

有没有更好的办法?

4.python读写csv文件

4.python读写csv文件

1.爬取豆瓣top250书籍

import requests
import json
import csv
from bs4 import BeautifulSoup

books = []
def book_name(url): res = requests.get(url) html = res.text soup = BeautifulSoup(html,html.parser) items = soup.find(class_="grid-16-8 clearfix").find(class_="indent").find_all(table) for i in items: book = [] title = i.find(class_="pl2").find(a) book.append( + title.text.replace( ,‘‘).replace(\n,‘‘) + ) star = i.find(class_="star clearfix").find(class_="rating_nums") book.append(star.text + ) try: brief = i.find(class_="quote").find(class_="inq") except AttributeError: book.append(”暂无简介“) else: book.append(brief.text) link = i.find(class_="pl2").find(a)[href] book.append(link) global books books.append(book) print(book) try: next = soup.find(class_="paginator").find(class_="next").find(a)[href] # 翻到最后一页 except TypeError: return 0 else: return next next = https://book.douban.com/top250?start=0&filter= count = 0 while next != 0: count += 1 next = book_name(next) print(-----------以上是第 + str(count) + 页的内容-----------) csv_file = open(D:/top250_books.csv,w,newline=‘‘,encoding=utf-8) w = csv.writer(csv_file) w.writerow([书名,评分,简介,链接]) for b in books: w.writerow(b)

结果

分享图片

2.把评分为9.0的书籍保存到book_out.csv文件中

‘‘‘
1.爬取豆瓣评分排行前250本书,保存为top250.csv
2.读取top250.csv文件,把评分为9.0以上的书籍保存到另外一个csv文件中
‘‘‘

import csv

#打开的时候必须用encoding=‘utf-8‘,否则报错
with open(top250.csv,encoding=utf-8) as rf:
    reader = csv.reader(rf)
    #读取头部
    headers = next(reader)
    with open(books_out.csv,encoding=utf-8) as wf:
        writer = csv.writer(wf)
        #把头部信息写进去
        writer.writerow(headers)

        for book in reader:
            #获取评分
            score = book[1]
            #把评分大于9.0的过滤出来
            if score and float(score) >= 9.0:
                writer.writerow(book)

55 Python - 利用python生成CSV文件

55 Python - 利用python生成CSV文件

新建项目3

 

导入之前的CSV文件 并新建一个py文件

 

类似29课内容,创建一个项目的虚拟环境

 

模拟把程序中数据写入CSV文件(注意区分写入一行和写入多行函数区别)

 

结果:每行多加了一个空行

 

修改代码,修该改open方法写入时候增加一个参数newline为空

 

以dict形式写入CSV文件

 

 

CSV文件在Python中的几种处理方式

CSV文件在Python中的几种处理方式

Comma Separated Values,简称CSV,它是一种以逗号分隔数值的文件类型。在数据库或电子表格中,它是最常见的导入导出格式,它以一种简单而明了的方式存储和共享数据,CSV文件通常以纯文本的方式存储数据表。今天,我将给大家分享在Python中如何操作CSV文件。

一、数据源

首先,我们来看看本次操作的数据源,图1 CSV文件是在Excel中打开的,图2 CSV文件是在Notepad++中打开的,我们在图2中可以看到数值之间是以逗号分隔开的,每行末尾是CR回车符和LF换行符(请注意,Linux系统以LF结尾,MacOS系统以CR结尾)。

 

二、使用Python基本语法读写CSV文件

使用基本语法读取CSV文件中的数据大概思路是:获取文件对象,读取表头,按逗号分隔符拆分表头字段,使用for循环语句获取表体记录数据,拆分后再次写入另一张CSV文件中(如果要将数据写入xls*格式的文件中,请参考前期公众号文章),步骤如下:

Step 1:导入必要模块,获取输入输出文件路径。

import sys

infile = sys.argv[1]

outfile = sys.argv[2]

Step 2:使用open内置函数获取文件对象。

with open(infile, "r", newline='''') as fr, open(outfile, "w", newline='''') as fw:

Step 3:使用文件对象的readline方法或者迭代器的next方法读取表头(文件对象是一个迭代器对象,支持迭代协议),使用str.split方法对表头进行拆分(注意,要使用strip函数去掉尾部换行符)。

header = next(fr)

header = header.strip()

header_list = header.split(",")

Step 4:既然表头已经查分好了,我们需要将表头写入文件对象中(注意尾部需要添加一个换行符哦)。

fw.write(",".join(map(str, header_list)) + "\n")

当然,上面的代码也可以这么写:

print(*header_list, sep=",", file=fw)

Step 5:使用for循环读取表体数据,并将其拆分成列表写入到文件中。

for row in fr:

row = row.strip()

row_list = row.split(",")

fw.write(",".join(map(str, header_list)) + "\n")

以上步骤完成后,在命令提示符中输入:

python csvrw.py inputfile.csv outputfile.csv

输入输出csv文件名称以及脚本名称请自定义,以上只是举例说明。

以上代码如下:

 

三、使用csv模块读写CSV文件

csv模块是Python内置的一个模块,它考虑了csv文件中的各种复杂情况,平时处理文件基本上使用此模块,下面来看看csv模块处理csv文件的方式,其步骤如下:

Step 1:首先,导入必要模块,获取输入输出文件路径。

import sys

import csv

infile = sys.argv[1]

outfile = sys.argv[2]

Step 2:使用open内置函数获取文件对象。

with open(infile, "r", newline='''') as incsv, open(outfile, "w", newline='''') as outcsv:

Step 3:使用csv模块中的reader和writer函数分别获取reader和writer对象。

freader = csv.reader(incsv, delimiter=",")

fwriter = csv.writer(outcsv, delimiter=",")

Step 4:使用for循环语句读取和写入数据。

for rowlist in freader:

fwriter.writerow(rowlist)

以上步骤完成后,在命令提示符中输入相应命令即可(请参照)

代码如下:

 

四、使用pandas读写CSV文件

pandas库是一个强大的数据处理和数据分析库,使用pandas处理csv文件更简单,其步骤如下:

Step 1:首先,导入必要模块,获取输入输出文件路径。

import sys

import pandas as pd

infile = sys.argv[1]

outfile = sys.argv[2]

Step 2:使用pandas的read_csv方法将数据存储到一个DataFrame对象中。

dataframe = pd.read_csv(infile)

Step 3:然后使用DataFrame的to_csv方法将其输出到另一张csv表中。

dataframe.to_csv(outfile, index=False)

以上步骤完成后,在命令提示符中输入相应命令即可(请参照)

代码如下:

 

  •  
 

csv文件的中文如何正确在python中显示

csv文件的中文如何正确在python中显示

运行环境:osx 10,python2.7

有一个csv文件,里面有中文,使用open打开,程序开始之前写了
# -*- coding: cp936 -*-

import sys
#reload(sys)
#sys.setdefaultencoding(''utf8'')
#encoding=utf8


打开之后用readline打印,但是中文还是乱码,使用read_csv打开,也是乱码,python本身的编码是ascii,用chardet检查,csv文件也是ascii编码,请问怎么解决这个问题,能让中文正常显示呢?

关于在python 2或python 3中编写csv文件的可移植方式采用python语言对csv文件写入的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于4.python读写csv文件、55 Python - 利用python生成CSV文件、CSV文件在Python中的几种处理方式、csv文件的中文如何正确在python中显示等相关内容,可以在本站寻找。

本文标签: