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文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)