繁体   English   中英

如何使用 python 一次性处理所有子文件夹

[英]how do i handle all subfolders in a single pass using python

我有一个 raw_data 文件夹,其中包含 4 个文件夹,即: ordersplaylist_tracktrack_factstracks

如下每一个——

./raw_data/tracks/tracks_0.csv
./raw_data/tracks/tracks_1.json
./raw_data/tracks/tracks_2.csv

ETC...

应该合并到一个文件中:./processed_data/ ./processed_data/tracks.json.gz

我编写了以下代码,它读取 csv 文件并将其转换为 json 并将其放入 jsonfile/playlist_tracksjson/playlist_track_4.Z466DEEC76ECDF5FCA6D38571F6324D54 中的原始文件?

import csv 
import json 
import pandas as pd
import glob

csv_file = pd.DataFrame(
    pd.read_csv(
        "raw_data/playlist_tracks/playlist_track_4.csv",
        header=0,
        index_col=False
    )
)

csv_file.to_json(
    "processedfile/playlist_tracksjson/playlist_track_4.json",
    orient = "records",
    double_precision=0,
    lines=True
)

result = ''
for f in glob.glob("*.json"):
    with open(f, "r") as infile:
        result += infile.read()
    with open("merged_file.json.gz", "w") as outfile:
        outfile.writelines(result)

但是文件夹结构是

processedfile/ordersjson/mergedtracksfile.json.gz

而我想要

processedfile/mergedtracksfile.json.gz

如何一次性处理这些文件夹中的所有文件?

使用os.walk 请参阅https://docs.python.org/3/library/os.html

这个 function 递归地遍历一个目录及其所有子目录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM