请问,python 如何把lsit中的字符元素循环作为即将生成的文件的名称

何以笙箫默wonder 发布于 2016/06/10 22:30
阅读 439
收藏 0
比如,我有文件名为sz000001和sz000002等文件在不同时期的多个csv文件(即在不同的以时间命名的文件夹下,如20110101,20110102,20110103……)我想通过循环来读取文件名称相同的csv文件,并利用append将其拼接起来,最终想分别得到以sz000001和sz000002命名的拼接好的csv文件,请问该如何实现呢?
加载中
1
fromdtor
fromdtor

这样你应该可以继续了:

Last login: Sat Jun 11 00:16:45 on ttys000
➜  ~ cd demo
➜  demo tree
.
├── 20110101
│   ├── sz000001.csv
│   ├── sz000002.csv
│   └── sz000003.csv
├── 20110102
│   ├── sz000001.csv
│   ├── sz000002.csv
│   └── sz000003.csv
└── 20110103
    ├── sz000001.csv
    ├── sz000002.csv
    └── sz000003.csv

3 directories, 9 files
➜  demo python
Python 2.7.6 (default, Sep  9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> from collections import defaultdict
>>> file_name_dict = defaultdict(list)
>>> dirs = os.listdir(os.getcwd())
>>> for item in dirs:
...     sub_dir = os.path.join(os.getcwd(), item)
...     if os.path.isdir(sub_dir):
...         files = os.listdir(sub_dir)
...         for file in files:
...             if file.endswith('.csv'):
...                 file_name_dict[file].append(os.path.join(item, file))
...
>>> print file_name_dict
defaultdict(<type 'list'>, {'sz000003.csv': ['20110101/sz000003.csv', '20110102/sz000003.csv', '20110103/sz000003.csv'], 'sz000001.csv': ['20110101/sz000001.csv', '20110102/sz000001.csv', '20110103/sz000001.csv'], 'sz000002.csv': ['20110101/sz000002.csv', '20110102/sz000002.csv', '20110103/sz000002.csv']})
>>>



何以笙箫默wonder
何以笙箫默wonder
谢谢你~我尝试了一下,这样的话我得到了一个file_name_dict,然后里面每一个元素都是以文件名命名的list,比如sz000001,sz000002,然后sz000001里面又是很多个对应不同日期的dataframe,,请问我可以将最后的dataframe里面的数据进行合并并以sz000001命名提取出来称为一个新的dataframe吗?
返回顶部
顶部