python-----csv文件

Posted T,X

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python-----csv文件相关的知识,希望对你有一定的参考价值。

 

1.例子

import csv
def writeToCSV(fileName):
    outputFile = open(fileName,\'w\',newline=\'\')
    outputWriter = csv.writer(outputFile)
    #outputWriter = csv.writer(outputFile,delimiter=\'\\t\')
    outputWriter.writerow([\'2020/07/25\',\'15:25:00\',\'xt\',\'1\'])
    outputWriter.writerow([\'2020/07/25\',\'15:25:00\',\'xt\',\'2\'])
    outputWriter.writerow([\'2020/07/25\',\'15:25:00\',\'xt\',\'3\'])
    outputWriter.writerow([\'2020/07/25\',\'15:25:00\',\'xt\',\'4\'])
    outputFile.close()

 

文本模式打开:

  

用Excel打开:

  

 

 

  注意点:

  (1)open时指定newline参数值为空串,否则csv文件记录会变成双倍行距

  (2)获取csv.writer时可指定列分隔符和行分隔符,例如指定列分隔符为TAB,行分隔符为双倍行距

outputFile = open(fileName,\'w\',newline=\'\')
#outputWriter = csv.writer(outputFile)
outputWriter = csv.writer(outputFile,delimiter=\'\\t\',lineterminator=\'\\n\\n\')

  文本模式打开:

    

 

   Excel打开:

    

 

 

 

  小结:列分隔符用默认的逗号,行分隔符用默认的 \\n 更好,便于Excel打开

 

 

2. 书上的例子

  将一个csv文件的第一行去掉,然后保存到另一个目录下

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import csv,os
import logging
#logging.basicConfig(filename=\'xx.txt\',level=logging.DEBUG, format=\' %(asctime)s - %(levelname)s - %(message)s\')
logging.basicConfig(level=logging.DEBUG, format=\' %(asctime)s - %(levelname)s - %(message)s\')

def removeCSVHeader(baseDir):
    \'\'\'
    将baseDir目录下(一级)的csv文件的文件头去掉保存在另一个目录中,不影响原文件
    \'\'\'
    if not os.path.isdir(baseDir):
        logging.debug(baseDir+\'不是一个目录\')
        return

    desDir = \'headerRemoved\' #保存在当前目录下的desDir子目录下
    os.makedirs(desDir,exist_ok=True)
    allFiles = os.listdir(baseDir)
    count = 0
    for csvFilename in allFiles:
        if (os.path.isfile(csvFilename) and csvFilename.endswith(\'.csv\')):
            csvFileRObj = open(csvFilename)
            csvReader = csv.reader(csvFileRObj)

            csvFileWObj = open(os.path.join(desDir,csvFilename),\'w\',newline=\'\')
            csvWriter = csv.writer(csvFileWObj)

            for row in csvReader:
                if csvReader.line_num == 1:
                    continue
                csvWriter.writerow(row)
            csvFileRObj.close()
            csvFileWObj.close()
            count += 1
            logging.debug(csvFilename+\'转换完成\')
        else:
            continue
    logging.debug(\'\'+str(count)+\'个csv文件转换完成\')


removeCSVHeader(\'.\')

 

 

3.  关于CSV的API

 

以上是关于python-----csv文件的主要内容,如果未能解决你的问题,请参考以下文章

在 python csv 文件中写一个列表,每个列表一个新行

Python csv文件到数据字典多个键

Python csv 文本操作

Python - csv writer 按列而不是按行写入

Python UDF - 导入/读取外部文件

python csv文件放到哪里