加入约60个时间序列csv文件-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

加入约60个时间序列csv文件

2019-01-21 16:30:07 2475 1

我有一些代码可以下载自2006年左右以来每个月的月度数据,因此需要相当数量的文件。然后我运行一些其他代码将所有月度文件连接到一个包含所有数据的大文件中(注意在第一个文件之后,它每次都删除标题):

from glob import glob
files = sorted(glob('*.csv'))

with open('VIC.csv', 'w') as fi_out:

for i, fname_in in enumerate(files):            
    with open(fname_in, 'r') as fi_in:               
        for i_line, line in enumerate(fi_in):
             (i_line > 0)
            if i_line > 0 or i == 0:
                fi_out.write(line)

这很好用,除了现在我想做同样但不同的状态。即我下载的文件看起来像这样:
1cMFS
现在看起来像这样:
0qRAI
因此,当我运行我的代码时,它会填满。

理想情况下,我希望它生成两个csv文件,一个名为VIC,所有VIC数据加入,一个名为QLD,所有QLD数据都已加入。但是我不知道如何修改我的代码来执行此操作?

取消 提交回答
全部回答(1)
  • 一码平川MACHEL
    2019-07-17 23:26:06

    所以,在botom是我改编的代码。首先,我拿了你的代码,并在一个名为的函数中重构它merge。此功能,与您通话与inputFiles和outputFileName。在您的第一种情况下,您将其称为:

    merge(sorted(glob('*.csv')), 'VIC.csv')

    现在你有2组数据。我们不是在所有.csv输入文件上调用它,而是仅在VIC.csv输入文件上调用它:

    merge(sorted(glob('*VIC1.csv')), 'VIC.csv')

    然后我们重复QLD文件。完整代码如下所示。

    from glob import glob

    def merge(inputFiles, outputFileName):

    with open(outputFileName, 'w') as fi_out:
        for i, fname_in in enumerate(inputFiles):            
            with open(fname_in, 'r') as fi_in:               
                for i_line, line in enumerate(fi_in):
                    (i_line > 0)
                    if i_line > 0 or i == 0:
                        fi_out.write(line)
    

    merge(sorted(glob('*VIC1.csv')), 'VIC.csv')
    merge(sorted(glob('*QLD1.csv')), 'QLD.csv')
    一个次要的重构,不需要跟踪正在处理的文件或行。

    def merge(inputFiles, outputFileName):

    inputFiles = iter(inputFiles)
    with open(outputFileName, 'w') as fi_out:
        #process the first file
        with open(next(inputFiles)) as first_file:
            fi_out = firstfile.read()
        #now just skip the first line in the other files
        for fname in inputFiles:            
            with open(fname_in, 'r') as fi_in:
                skip = next(f_in)
                fi_out.write(fi_in.read())
    0 0
相关问答

0

回答

pyodps可以往本地写入csv文件吗

2022-08-31 13:53:48 131浏览量 回答数 0

1

回答

python写入csv文件序列包含典表方式的实例代码是什么?

2021-11-30 12:12:13 350浏览量 回答数 1

1

回答

python的序列包含典表方式是写入csv文件的方式吗?

2021-11-30 12:04:25 360浏览量 回答数 1

1

回答

导出csv文件的样式化

2020-04-25 14:56:19 640浏览量 回答数 1

1

回答

读取CSV文件并将值存储到数组中

2020-01-16 14:57:02 519浏览量 回答数 1

1

回答

将NumPy数组转储到csv文件中

2020-01-13 18:56:57 216浏览量 回答数 1

1

回答

如何在pyspark中启用csv文件的多行读取

2018-12-12 14:11:16 2270浏览量 回答数 1

2

回答

java xls转换csv格式的文件怎么打开

2018-05-10 20:07:42 1436浏览量 回答数 2

1

回答

csv文件格式

2016-04-18 09:25:18 3766浏览量 回答数 1

1

回答

java 读写csv文件的问题?

2016-03-06 15:06:42 2197浏览量 回答数 1
47
文章
723
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载