我如何输入路径并在同一路径中创建所有 csv 文件的 hdf5 文件?

Posted

技术标签:

【中文标题】我如何输入路径并在同一路径中创建所有 csv 文件的 hdf5 文件?【英文标题】:how i can enter a path and create hdf5 file with all csv file in the same path? 【发布时间】:2021-01-26 14:28:26 【问题描述】:

我试过这个脚本,但我看不到 hdf5 文件,脚本运行没有错误,但我什么也没看到。

import glob
import os
import pandas as pd

# inputs
path = input('Insert the directory path:')
group = input('Insert a group name: ')

# create a list of file paths
file_list = [file for file in glob.glob(path)]
# dict comprehension to create keys from file name and values from the csv files
dfs = os.path.basename(os.path.normpath(filename)).split('.')[0]: pd.read_csv(filename) for filename in file_list

# loop though the dataframes
for k,df in dfs.items():
    # store the HDF5 file
    store = pd.HDFStore('test.h5')
    # append df to a group and assign the key with f-strings
    store.append(f'group/k', df, format='table', data_columns=df.columns)
    # close the file
    store.close()

【问题讨论】:

【参考方案1】:

尝试添加存储路径:

store = pd.HDFStore('test.h5', mode='w')

【讨论】:

实际上,运行良好的脚本仍然是 hdf5 未创建的相同问题 我仍然想念我无法创建 hdf5 文件如果有任何其他建议将包含许多 csv 文件的路径转换为 ​​hdf5 文件请建议【参考方案2】:
import glob
import os
import pandas as pd

# inputs
pattern = input('Insert the file pattern:')
group = input('Insert a group name: ')

# create a list of file paths
# file_list = [file for file in glob.iglob(path)]
# pattern exp:d:\test\*.csv
file_list = list(glob.iglob(pattern))
# dict comprehension to create keys from file name and values from the csv files
dfs = os.path.basename(os.path.normpath(filename)).split('.')[0]: pd.read_csv(filename) for filename in file_list

# store the HDF5 file
store = pd.HDFStore('test.h5')
# loop though the dataframes
for k,df in dfs.items():
    # append df to a group and assign the key with f-strings
    store.append(f'group/k', df, format='table', data_columns=df.columns)
    # close the file
store.close()

【讨论】:

以上是关于我如何输入路径并在同一路径中创建所有 csv 文件的 hdf5 文件?的主要内容,如果未能解决你的问题,请参考以下文章

使用 bash,如何从目录中的所有文件中创建类路径?

使用 Argparse 在 Python 中创建文件转换器

在 DOS 6.22 中创建提示用户输入文件路径的批处理文件

如何检测视图之间的滑动以在android java中创建路径?

如何在 Grapevine 中创建动态路径

如何在 C 语言的 windows 的 %appdata% 路径中创建目录并创建文件