php或者python读取淘宝助手生成csv

<?php

    $file = "1.csv";

    function fopen_utf8($filename){
        $encoding='';
        $handle = fopen($filename, 'r');
        $bom = fread($handle, 2);
        //    fclose($handle);
        rewind($handle);

        if($bom === chr(0xff).chr(0xfe)  || $bom === chr(0xfe).chr(0xff)){
            // UTF16 Byte Order Mark present
            $encoding = 'UTF-16';
        } else {
            $file_sample = fread($handle, 1000) + 'e'; //read first 1000 bytes
            // + e is a workaround for mb_string bug
            rewind($handle);

            $encoding = mb_detect_encoding($file_sample , 'UTF-8, UTF-7, ASCII, EUC-JP,SJIS, eucJP-win, SJIS-win, JIS, ISO-2022-JP');
        }
        if ($encoding){
            stream_filter_append($handle, 'convert.iconv.'.$encoding.'/UTF-8');
        }
        return  ($handle);
    }


    if (($handle = fopen_utf8($file, "r")) === FALSE) return;
    while (($cols = fgetcsv($handle, 1000, "\t")) !== FALSE) {
        print_r($cols);
    }

以上是php代码


python(3.4)代码(把cvs和运行文件放在相同目录)

# encoding=utf-8
 
import os,codecs,sys,string
 
# 从当前脚本所在目录中查找csv文件
for f in os.listdir(os.path.dirname(os.path.abspath(__file__))):
    # 略过非csv文件
    if f[-4:len(f)] != '.csv':
        continue
    # 读取csv内容
    content = codecs.open(f,'r','utf-16').read()
    # 清除描述中的换行符
    content = content.replace("\r\n", '')
    # 切分行
    for num, line in enumerate(content.split("\n")):
        # 略过空行
        if not line:
            continue
        # 切分字段
        fields = []

        for field in line.strip().split("\t"):
            fields.append(field)
            #print(field)
     
 
        # 查看切分字段数量是否一致
        print (len(fields))


转载于:https://my.oschina.net/mymxd/blog/400815

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值