Python将字典类型数据一行行写入文件并读取出来

说明:

  1. json.dumps()用于将字典形式的数据转化为字符串。
  2. json.loads()用于将字符串形式的数据转化为字典。
  3. 函数convertFileFmt用于将Windows(CR LF)格式的文件转换为Unix(LF)格式。

参考小例:

# -*- coding: utf-8 -*-
import os
import json
import time


def writeDict2File(fileName):
    print('start write ...')
    dictList = [
        {1: 'a', 2: 'b', 3: 'c'},
        {11: 'aa', 22: 'bb', 3: 'cc'},
        {111: 'aaa', 222: 'bbb', 333: 'ccc'}
    ]

    with open(fileName, 'w', encoding='utf-8') as f:
        for oneData in dictList:
            js = json.dumps(oneData, ensure_ascii=False)
            f.write(js)
            f.write('\n')
    convertFileFmt(fileName)
    print('Write OK')


def readFile2Dict(fileName):
    print('start read ...')
    dictList = []
    with open(fileName, 'r', encoding='utf-8') as f:
        for line in f.readlines():
            js = json.loads(line.strip(), encoding='utf-8')
            dictList.append(js)
    print(dictList)
    for oneData in dictList:
        print(oneData)
    print('Read OK')


def convertFileFmt(fileName):
    with open(fileName, 'rb') as fr:
        content = fr.read()
        content = content.replace(b'\r\n', b'\n')
        print(content)

    with open(fileName, 'wb') as fw:
        fw.write(content)


if __name__ == '__main__':
    fileName = os.path.join(os.getcwd(), 'lalala.txt')
    writeDict2File(fileName)
    time.sleep(3)
    readFile2Dict(fileName)

输出结果如下

start write ...
b'{"1": "a", "2": "b", "3": "c"}\n{"11": "aa", "22": "bb", "3": "cc"}\n{"111": "aaa", "222": "bbb", "333": "ccc"}\n'
Write OK
start read ...
[{'1': 'a', '2': 'b', '3': 'c'}, {'11': 'aa', '22': 'bb', '3': 'cc'}, {'111': 'aaa', '222': 'bbb', '333': 'ccc'}]
{'1': 'a', '2': 'b', '3': 'c'}
{'11': 'aa', '22': 'bb', '3': 'cc'}
{'111': 'aaa', '222': 'bbb', '333': 'ccc'}
Read OK
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python可以使用csv模块来处理csv文件中的行数据。首先需要导入csv模块,然后使用csv.reader()函数读取csv文件中的数据行,每一行数据都是一个列表,可以通过索引来访问其中的元素。例如,可以使用以下代码读取csv文件中的第一行数据: import csv with open('data.csv', newline='') as csvfile: reader = csv.reader(csvfile) row1 = next(reader) print(row1) 其中,'data.csv'是csv文件的路径,newline=''表示不使用换行符来处理行数据。使用next()函数可以获取csv文件中的下一行数据。 ### 回答2: Python 是一种强大的编程语言,可以用来处理各种类型数据。在处理 CSV 文件时,Python 提供了一种简单而高效的方法。 首先,我们需要导入 python 自带的 csv 模块。可以使用 `import csv`语句来实现。 接下来,我们需要打开 CSV 文件并读取其中的数据。可以使用 `with open('filename.csv') as file:` 语句来打开文件,并将其赋值给一个变量。然后,我们可以使用 `csv.reader()` 函数来读取文件中的数据,例如 `reader = csv.reader(file)`。 CSV 文件中的每一行数据都被视为一个列表,其中每个数据项都被视为一个元素。我们可以使用 `for` 循环来逐行处理数据。例如,`for row in reader:`。 在处理文件数据时,我们可以使用索引来访问特定的列。例如,`row[0]` 表示第一列的数据,`row[1]` 表示第二列的数据,以此类推。 在处理 CSV 文件时,我们可以执行各种操作。例如,我们可以将文件中的数据存储到一个新的数据结构中,如列表字典或 pandas 数据帧。我们还可以对数据进行过滤、排序、筛选、计算等操作。 处理 CSV 数据也可以包括写入数据到文件中的过程。我们可以使用 `csv.writer()` 函数来创建一个写入器,然后使用 `writer.writerow()` 函数将数据写入文件中。 总之,Python 提供了丰富的工具和库,方便我们处理 CSV 文件中的行数据。使用 Python 处理 CSV 数据可以帮助我们更轻松地分析、处理和管理大量数据。 ### 回答3: Python处理CSV行数据可以使用csv模块来实现。csv模块是Python内置的用于处理CSV文件的模块,可以方便地读取和写入CSV文件。 首先,我们需要导入csv模块: ```python import csv ``` 如果我们想打开一个CSV文件并读取其中的行数据,可以使用`open()`函数打开文件,然后使用csv模块的`reader()`函数读取CSV文件的内容并返回一个可迭代的reader对象。 ```python with open('data.csv', 'r') as file: reader = csv.reader(file) for row in reader: # 处理每一行数据 print(row) ``` 上述代码打开名为data.csv的CSV文件,并使用reader对象按行读取文件内容。然后,我们可以使用for循环迭代读取的每一行数据进行处理。在这个例子中,我们只是将每一行数据打印出来。 除了读取CSV文件,csv模块还支持写入CSV文件。我们可以使用`writer()`函数创建一个writer对象,然后通过该对象的`writerow()`方法将数据写入CSV文件。 ```python data = [['Name', 'Age', 'Gender'], ['John', '25', 'Male'], ['Alice', '28', 'Female']] with open('output.csv', 'w', newline='') as file: writer = csv.writer(file) writer.writerows(data) ``` 在这个例子中,我们定义了一个二维列表data来表示要写入的数据。然后使用writer对象的`writerows()`方法将数据写入名为output.csv的CSV文件中。 总之,通过使用Python的csv模块,我们可以轻松地读取和写入CSV文件,并对行数据进行处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值