Python csv模块(读写文件)

Python csv模块(读写文件),第1张

CSV文件又称为逗号分隔值文件,是一种通用的、相对简单的文件格式,用以存储表格数据,包括数字或者字符。CSV是电子表格和数据库中最常见的输入、输出文件格式。

通过爬虫将数据抓取的下来,然后把数据保存在文件,或者数据库中,这个过程称为数据的持久化存储。本节介绍Python内置模块CSV的读写 *** 作。

1)csvwriter()

csv模块中的writer类可用于读写序列化的数据,其语法格式如下:

参数说明:

csvfile:必须是支持迭代(Iterator)的对象,可以是文件(file)对象或者列表(list)对象。

dialect:编码风格,默认为excel的风格,也就是使用逗号,分隔。

fmtparam:格式化参数,用来覆盖之前dialect对象指定的编码风格。

如果想同时写入多行数据,需要使用writerrows()方法,代码如下所示:

aggscsv文件内容:

2)csvDictWriter()

当然也可使用DictWriter类以字典的形式读写数据,使用示例如下:

namecsv文件内容,如下所示:

1)csv,reader()

csv模块中的reader类和DictReader类用于读取文件中的数据,其中reader()语法格式如下:

2)csvDictReader()

应用示例如下:

输出结果:

开课吧广场-人才学习交流平台

对于有大数字的CSV文件,应使用导入,而不是打开。

这里以Excel2010为例,其它版本也可以参照:

打开Excel,此时Excel内为空白文档

点击工具栏中的数据→自文本

在“导入文本文件”窗口中,选择你要打开的CSV文件

在d出“文本导入向导 - 第1步”点击下一步

“文本导入向导 - 第2步”中,分隔符号根据CSV中实际的分隔符号来选定,然后下一步

PS:一般来说CSV文件是逗号分隔,这里就只选逗号就好了

在“文本导入向导 - 第3步”的列数据格式中选择“文本”,如果有多列,则在下方一列列选择然后把数据格式改为文本,单击完成

放置位置如果没有要求,可以直接点击“确定”按钮

此时CSV文件应该已经被导入到Excel中,并且所有数字被正确显示

我是用Excel 表格中的VBA 来实现的。你可以试试看。

1- 由于CSV 和XLS 是可以共用,而我不知道CSV 具体准确的名称,所以需要你先将CSV 文件后缀名修改为XLS

2- 在Excel 表格中新建一个按钮(这个应该会吧,O(∩_∩)O~)

3- 双击该按钮,就可以进入代码编辑了。

4- 输入如下代码。

===========================================

Private Sub Command_Click()

'

Dim docSource As Workbook, shtSource As Worksheet ' 定义:一个引用的数据页面(sheet),和一个引用的数据簿(csv,xls)

Dim FileToOpen As Variant, vrtSelectedItem As Variant

Dim typeStr As String

Dim i As Integer

FileToOpen = ApplicationGetOpenFilename(FileFilter:="Microsoft Excel 工作表(XLS),XLS, Lotus 1-2-3 9文件(123),123,Lotus 1-2-3文件(wk),wk", MultiSelect:=True)

typeStr = UCase(TypeName(FileToOpen))

ApplicationScreenUpdating = False

If typeStr <> "BOOLEAN" Then

' 对于每个打开的Excel 工作簿,要对其他的每个Sheet 页面进行 *** 作

For Each vrtSelectedItem In FileToOpen

Set docSource = WorkbooksOpen(vrtSelectedItem) ' 设置为当前打开的工作簿

'对打开的工作簿中的每个页面(Sheet)进行 *** 作

For i = 1 To docSourceWorksheetsCount

Set shtSource = docSourceWorksheets(i)

' ================================================

' 现在已经定位到具体的CSV的某个页面了,

' 请在这里对每个CSV 页面的单元格进行相关 *** 作

' ================================================

'关闭引入源数据

ApplicationCutCopyMode = False

Next i

Call docSourceClose(False)

Set shtSource = Nothing

Set docSource = Nothing

Next vrtSelectedItem

End If

End Sub

===========================================

csv格式就是逗号分隔,所以用Split(strLine, ",")就可以将一行的文件内容转换成数组,使用StreamReader可以将文件以行的形式读取出来,读取五次就可以都取出来了,至于之后的数据怎么处理就要看你的想法了,可以把所有的数据都放到一个List里,通过角标算数取得一列的数,也可以使用二维数组。至于你说的每个元素的出现个数这个要求,我印象里数组类有个Select方法,可以取得你想要的结果,具体用法你查一下MSDN吧。

js读取CSV格式数据,参考如下:

<script type="text/javascript">     

// This will parse a delimited string into an array of  

// arrays The default delimiter is the comma, but this  

// can be overriden in the second argument  

function CSVToArray( strData, strDelimiter ){  

// Check to see if the delimiter is defined If not,  

// then default to comma  

strDelimiter = (strDelimiter || ",");  

   

// Create a regular expression to parse the CSV values  

var objPattern = new RegExp(  

(  

// Delimiters  

"(\\" + strDelimiter + "|\\r\\n|\\r|^)" +  

   

// Quoted fields  

"(:\"([^\"](:\"\"[^\"]))\"|" +  

   

// Standard fields  

"([^\"\\" + strDelimiter + "\\r\\n]))"  

),  

"gi"  

);  

   

   

// Create an array to hold our data Give the array  

// a default empty first row  

var arrData = [[]];  

   

// Create an array to hold our individual pattern  

// matching groups  

var arrMatches = null;  

   

   

// Keep looping over the regular expression matches  

// until we can no longer find a match  

while (arrMatches = objPatternexec( strData )){  

   

// Get the delimiter that was found  

var strMatchedDelimiter = arrMatches[ 1 ];  

   

// Check to see if the given delimiter has a length  

// (is not the start of string) and if it matches  

// field delimiter If id does not, then we know  

// that this delimiter is a row delimiter  

if (  

strMatchedDelimiterlength &&  

(strMatchedDelimiter != strDelimiter)  

){  

   

// Since we have reached a new row of data,  

// add an empty row to our data array  

arrDatapush( [] );  

   

}  

   

   

// Now that we have our delimiter out of the way,  

// let's check to see which kind of value we  

// captured (quoted or unquoted)  

if (arrMatches[ 2 ]){  

   

// We found a quoted value When we capture  

// this value, unescape any double quotes  

var strMatchedValue = arrMatches[ 2 ]replace(  

new RegExp( "\"\"", "g" ),  

"\""  

);  

   

} else {  

   

// We found a non-quoted value  

var strMatchedValue = arrMatches[ 3 ];  

   

}  

   

   

// Now that we have our value string, let's add  

// it to the data array  

arrData[ arrDatalength - 1 ]push( strMatchedValue );  

}  

   

// Return the parsed data  

return( arrData );  

}  

   

</script>

以上就是关于Python csv模块(读写文件)全部的内容,包括:Python csv模块(读写文件)、CSV文件里的数字在EXCEL中的转换问题、怎么从N个csv文件里抓取部分数据,成为一个XLS文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10070849.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存