专栏首页AnRFDevPython3.x 读写csv文件中的数字

Python3.x 读写csv文件中的数字

Win7 Python3.6

读写csv文件

读文件时先产生str的列表,把最后的换行符删掉;然后一个个str转换成int

## 读写csv文件
csv_file = 'datas.csv'

csv = open(csv_file,'w')
for i in range(1,20):
    csv.write(str(i) + ',')
    if i % 10 == 0:
        csv.write('\n')
csv.close()

result = []
with open(csv_file,'r') as f:
    for line in f:
        linelist = line.split(',')
        linelist.pop()# delete: \n
        for index, item in enumerate(linelist):
            result.append(int(item))
print('\nResult is \n' , result)

输出:

Result is
 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

检查目录是否存在

若目标目录不存在,则新建一个目录

import os
json_dir = "../dir_json/2017-04/"
if not os.path.exists(json_dir):
    print("json dir not found")
    os.makedirs(json_dir)
    print("Create dir  " + json_dir)

写文件时指定格式

参考下面的代码,打开文件时指定utf8,转换成json时指定ensure_ascii=False

import json
json_file = open(json_dir + id + '.json', 'w', encoding='utf8')
json_file.write(json.dumps(data_dict, ensure_ascii=False))

避免写成的json文件乱码

函数 enumerate(iterable, start=0)

返回一个enumerate对象。iterable必须是一个句子,迭代器或者支持迭代的对象。

enumerate示例1:

>>> data = [1,2,3]
>>> for i, item in enumerate(data):
	print(i,item)


0 1
1 2
2 3

示例2:

>>> line = 'one'
>>> for i, item in enumerate(line,4):
	print(i,item)


4 o
5 n
6 e

参考: https://docs.python.org/3/library/functions.html?highlight=enumerate#enumerate

class int(x=0)

class int(x, base=10) 返回一个Integer对象。对于浮点数,会截取成整数。

>>> print(int('-100'),int('0'),int('3'))
-100 0 3
>>> int(7788)
7788
>>> int(7.98)
7
>>> int('2.33')
Traceback (most recent call last):
  File "<pyshell#27>", line 1, in <module>
    int('2.33')
ValueError: invalid literal for int() with base 10: '2.33'

读取binary文件

逐个byte读取,注意用b''来判断是否读到文件尾部

@staticmethod
def convert_bin_to_csv(bin_file_path, csv_file_path):
    if not os.path.exists(bin_file_path):
        print("Binary file is not exist! " + bin_file_path)
        return
    with open(bin_file_path, "rb") as bin_f:
        cur_byte = bin_f.read(1)
        while cur_byte != b'':
            # Do stuff with byte.
            print(int.from_bytes(cur_byte, byteorder='big', signed=True))
            cur_byte = bin_f.read(1)

读取到的byte可以转换为int,参考文档

这里 cur_byte 类似于 b'\x08'

print(int.from_bytes(cur_byte, byteorder='big', signed=True))

从bin中读取数据并存入CSV文件中

先从bin中读取byte,规定好几个字节凑成1个数字。 按每行一个数字的格式写入CSV文件。

@staticmethod
def convert_bin_to_csv(bin_file_path, csv_file_path, byte_count=1, byte_order='big', digit_signed=True):
    if not os.path.exists(bin_file_path):
        print("Binary file is not exist! " + bin_file_path)
        return
    with open(csv_file_path, "w") as csv_f:
        with open(bin_file_path, "rb") as bin_f:
            cur_byte = bin_f.read(byte_count)
            while cur_byte != b'':
                csv_f.write(str(int.from_bytes(cur_byte, byteorder=byte_order, signed=digit_signed)) + ",\n")
                cur_byte = bin_f.read(byte_count)

bin存储的数据格式一定要商量好。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python 数据分析基础 day5-读写csv文件基础python读写csv文件通过pandas模块读写csv文件通过csv模块读写csv文件

    今天说一下使用python读写csv文件。 读写csv文件可以使用基础python实现,或者使用csv模块、pandas模块实现。 基础python读写csv...

    billyang916
  • python3.x操作csv文件的实战

    python3.x集成了对csv文件的操作,直接引入包即可,但python2.x则需要单独安装。

    py3study
  • 【python】使用csv库以字典格式读写csv文件

    西西嘛呦
  • 数据清洗之 csv文件读写

    若尘_
  • python 读写csv格式的文件

    python在它的标准库中包含了csv模块。 例子环境 python3.4 win7 32位

    py3study
  • python读写csv文件的实战

    csv是什么?大家估计都听过,不过我猜很少能有人比较全面的解释下的,那么小弟就献丑一下。csv我理解的是一个存储数据的文件,里面以逗号作为分割进行存储(当然也可...

    py3study
  • Python3操作读写CSV文件使用包过程解析

    CSV(Comma-Separated Values)即逗号分隔值,一种以逗号分隔按行存储的文本文件,所有的值都表现为字符串类型(注意:数字为字符串类型)。

    砸漏
  • python利用Excel读取和存储测试数据完成接口自动化教程

    补充知识:python用unittest+HTMLTestRunner+csv的框架测试并生成测试报告

    砸漏
  • Python 读写 csv 文件的三种方法

    tf_train_shuffle_batch函数解析: http://blog.csdn.net/u013555719/article/details/7767...

    演化计算与人工智能
  • 使用CSV模块和Pandas在Python中读取和写入CSV文件

    CSV文件是一种纯文本文件,其使用特定的结构来排列表格数据。CSV是一种紧凑,简单且通用的数据交换通用格式。许多在线服务允许其用户将网站中的表格数据导出到CSV...

    用户7466307
  • Python3外置模块使用

    (1)外置模块一览表 描述:Python外置模块可以说是Python的强大之处的存在,使得Python语言扩展性高,使用方法众多并且使用也非常简单,在我们日常的...

    WeiyiGeek
  • Python:读写csv文件

    csv_reader把每一行数据转化成了一个list,list中每个元素是一个字符串。

    新码农
  • 支持各种特殊字符的 CSV 解析类 (.net 实现)(C#读写CSV文件)

    csv(Comma Separated Values)逗号分隔值,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本...

    lulianqi
  • 初识Python3

    Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。

    用户2146693
  • pyecharts在数据可视化中的应用详解

    安装 pip install pyecharts 也可以在pycharm软件里进行下载pyecharts库包。 下载成功后进行查询版本号

    砸漏
  • Python数据分析实战之数据获取三大招

    一个数据分析师,最怕的一件事情莫过于在没有数据的情况下,让你去做一个详细的数据分析报告。确实,巧妇难为无米之炊,数据是数据分析、数据挖掘乃至数据可视化最最基础的...

    咋咋
  • Python数据分析实战之数据获取三大招

    一个数据分析师,最怕的一件事情莫过于在没有数据的情况下,让你去做一个详细的数据分析报告。确实,巧妇难为无米之炊,数据是数据分析、数据挖掘乃至数据可视化最最基础的...

    数据STUDIO
  • python3写中文到csv中出现问号的解决办法

    用户2936342
  • python笔记5-python2写csv文件中文乱码问题

    前言 python2最大的坑在于中文编码问题,遇到中文报错首先加u,再各种encode、decode。 当list、tuple、dict里面有中文时,打印出来...

    上海-悠悠

扫码关注云+社区

领取腾讯云代金券