ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python-----csv文件

2020-07-25 16:33:09  阅读:304  来源: 互联网

标签:25 outputFile logging python outputWriter writer ----- 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

 

标签:25,outputFile,logging,python,outputWriter,writer,-----,csv
来源: https://www.cnblogs.com/taoXiang/p/13377169.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有