根据第一栏中的Python 3.4.3中的日期拆分一个较大的csv文件

克里斯托弗·锡安·霍尔

好的,所以我在下面的链接中找到了我需要的部分答案,只要我的csv文件采用2015-03-01,1,2,3,1,3第一列格式,它就可以正常工作当第一列更改为时,如何保持此工作2015-03-01 00:00:00.000

如何根据第一列的内容拆分一个巨大的csv文件?

import csv
from itertools import groupby

for key, rows in groupby(csv.reader(open("largeFile.csv", "r", encoding='utf-16')),
                     lambda row: row[0]):
with open("%s.txt" % key, "w") as output:
    for row in rows:
        output.write(",".join(row) + "\n")

所以我有一个大文件,其中大约有170万行...

2015.01.01,NULL,NULL,NULL,NULL,NULL,0,1,0,1,0,0,0,1
2015.01.01,NULL,NULL,NULL,NULL,NULL,0,1,0,1,0,0,0,1
2015.01.01,NULL,NULL,NULL,NULL,NULL,0,1,0,1,0,0,0,1
2015.01.01,NULL,NULL,NULL,NULL,NULL,0,1,0,1,0,0,0,1
2015.01.01,NULL,NULL,NULL,NULL,NULL,0,1,0,1,0,0,0,1
2015.01.01,NULL,NULL,NULL,NULL,NULL,0,1,0,1,0,0,0,1
2015.01.01,NULL,NULL,NULL,NULL,NULL,0,1,0,1,0,0,0,1
2015.01.02,NULL,NULL,NULL,NULL,NULL,0,1,0,1,0,0,0,1
2015.01.02,NULL,NULL,NULL,NULL,NULL,0,1,0,1,0,0,0,1
2015.01.02,NULL,NULL,NULL,NULL,NULL,0,1,0,1,0,0,0,1
2015.01.02,NULL,NULL,NULL,NULL,NULL,0,1,0,1,0,0,0,1
2015.01.03,NULL,NULL,NULL,NULL,NULL,0,1,0,1,0,0,0,1
2015.01.03,NULL,NULL,NULL,NULL,NULL,0,1,0,1,0,0,0,1

该程序确实每天都在创建一个新的文本文档,这真是太好了!

但是,当列如下时,它将停止工作。

2015-03-01 00:00:01.000,NULL,NULL,NULL,NULL,NULL,0,1,0,1,0,0,0,1

2015-03-01 00:00:02.000,NULL,NULL,NULL,NULL,NULL,0,1,0,1,0,0,0,1

2015-03-02 00:00:01.000,NULL,NULL,NULL,NULL,NULL,0,1,0,1,0,0,0,1

2015-03-02 00:00:02.000,NULL,NULL,NULL,NULL,NULL,0,1,0,1,0,0,0,1

2015-03-02 00:00:03.000,NULL,NULL,NULL,NULL,NULL,0,1,0,1,0,0,0,1

2015-03-03 00:00:01.000,NULL,NULL,NULL,NULL,NULL,0,1,0,1,0,0,0,1

2015-03-03 00:00:02.000,NULL,NULL,NULL,NULL,NULL,0,1,0,1,0,0,0,1

它给了我以下错误。

追溯(最近一次通话):文件“ C:\ Python34 \ Proj \ documents \ New folder \ dataPullSplit2.py”,第6行,带有open(“%s.txt”%key,“ w”)作为输出: OSError:[Errno 22]无效的参数:'2015-03-01 00:00:00.000.txt'

有人可以在这里向我指出正确的方向。

Found Temp Solution

好的,因此通过将其从“ w”更改为“ a”,我现在将其附加到文件上,并使用key[:-13]i能够切断文件名上的时间戳记...它可以工作,但是速度很慢。 ..我该如何改善并理解为什么进展如此缓慢?

这是现在的代码

import csv
from itertools import groupby

for key, rows in groupby(csv.reader(open("asdf2.txt", "r", encoding='utf-16')),
                     lambda row: row[0]):

with open("%s.txt" % key[:-13], "a") as output:
    for row in rows:
        output.write(",".join(row) + "\n")
迈克·米勒

假设您的文件应保留该模式2015.01.01,则清理key应当工作:

key = key.split()[0].replace('-', '.')

完整代码:

import csv
from itertools import groupby


def shorten_key(key):
    return key.split()[0].replace('-', '.')


for key, rows in groupby(csv.reader(open("asdf2.txt", "r", encoding='utf-16')),
                         lambda row: shorten_key(row[0])):

    with open("%s.txt" % shorten_key(key), "a") as output:
        for row in rows:
            output.write(",".join(row) + "\n")

快速测试:

keys = ['2015-03-01 00:00:02.000',  '2015.01.01']

for key in keys:
    print(key.split()[0].replace('-', '.'))

输出:

2015.03.01
2015.01.01

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Excel:表中的第一栏

来自分类Dev

是否可以一次将3个行中的4个文件分开一个文件?

来自分类Dev

如何按组查找一栏中的前3个滚动值?

来自分类Dev

替换CSV第一栏中的数据

来自分类Dev

计算文件第一栏中的出现次数

来自分类Dev

d3js:为什么第一栏的数据显示不正确?

来自分类Dev

如何删除“。”后的字符。(点)在第一栏中?

来自分类Dev

如何删除“。”后的字符。(点)在第一栏中?

来自分类Dev

从Excel第一栏中获取错误的数值

来自分类Dev

只处理第一栏中的文字?

来自分类Dev

根据另一栏更新栏

来自分类Dev

如何根据第一列中的值将python列表分为3个单独的列表?

来自分类Dev

如何从一个.csv文件php中的3个表中导出数据

来自分类Dev

使用 ffmpeg 将两个 MP3 文件添加到一个 MP4 文件中

来自分类Dev

在 D3.js V5 中解析并上传一个 csv 文件

来自分类Dev

读取一个巨大的 csv 文件并使用 d3 在 Javascript 中填充地图

来自分类Dev

画一个svg,但4面中只有3面?

来自分类Dev

S4类中是否可以有一个S3插槽?

来自分类Dev

在Neo4j(4.1.3)中,如果一个节点不存在,我如何一个接一个地匹配3个节点

来自分类Dev

根据一栏计算不重复

来自分类Dev

第一栏中的元素在flexbox中无法正确对齐

来自分类Dev

C#WinForms中列表视图第一栏中的图像

来自分类Dev

需要根据T-SQL中“收录日期”列计算出的第一个“ 3个月”,向列中的每个值添加3个月

来自分类Dev

MongoDB第一栏+第二栏> 2

来自分类Dev

MySQL Regex用于在较大的字符串中完全匹配3个相同字符,但不匹配4个相同字符

来自分类Dev

将一列拆分为 CSV 文件、PHP、多维数组中的 3 列

来自分类Dev

根据 Neo4j 中的时间树查找第一个/最后一个事件

来自分类Dev

在第一栏中为特定范围分配序列号

来自分类Dev

如何使用Vuetify.js的v-simple-table在第一栏中添加标题?

Related 相关文章

  1. 1

    Excel:表中的第一栏

  2. 2

    是否可以一次将3个行中的4个文件分开一个文件?

  3. 3

    如何按组查找一栏中的前3个滚动值?

  4. 4

    替换CSV第一栏中的数据

  5. 5

    计算文件第一栏中的出现次数

  6. 6

    d3js:为什么第一栏的数据显示不正确?

  7. 7

    如何删除“。”后的字符。(点)在第一栏中?

  8. 8

    如何删除“。”后的字符。(点)在第一栏中?

  9. 9

    从Excel第一栏中获取错误的数值

  10. 10

    只处理第一栏中的文字?

  11. 11

    根据另一栏更新栏

  12. 12

    如何根据第一列中的值将python列表分为3个单独的列表?

  13. 13

    如何从一个.csv文件php中的3个表中导出数据

  14. 14

    使用 ffmpeg 将两个 MP3 文件添加到一个 MP4 文件中

  15. 15

    在 D3.js V5 中解析并上传一个 csv 文件

  16. 16

    读取一个巨大的 csv 文件并使用 d3 在 Javascript 中填充地图

  17. 17

    画一个svg,但4面中只有3面?

  18. 18

    S4类中是否可以有一个S3插槽?

  19. 19

    在Neo4j(4.1.3)中,如果一个节点不存在,我如何一个接一个地匹配3个节点

  20. 20

    根据一栏计算不重复

  21. 21

    第一栏中的元素在flexbox中无法正确对齐

  22. 22

    C#WinForms中列表视图第一栏中的图像

  23. 23

    需要根据T-SQL中“收录日期”列计算出的第一个“ 3个月”,向列中的每个值添加3个月

  24. 24

    MongoDB第一栏+第二栏> 2

  25. 25

    MySQL Regex用于在较大的字符串中完全匹配3个相同字符,但不匹配4个相同字符

  26. 26

    将一列拆分为 CSV 文件、PHP、多维数组中的 3 列

  27. 27

    根据 Neo4j 中的时间树查找第一个/最后一个事件

  28. 28

    在第一栏中为特定范围分配序列号

  29. 29

    如何使用Vuetify.js的v-simple-table在第一栏中添加标题?

热门标签

归档