gpt4 book ai didi

python - 将 csv 文件分配给字典集合(列表),其中文件名作为键,文件内容作为值

转载 作者:行者123 更新时间:2023-12-01 01:23:16 25 4
gpt4 key购买 nike

我在Python中的迭代过程中遇到了问题,我已经尝试并搜索了解决方案,但我认为这比我的能力更复杂(仅供引用,我已经编写代码1个月了)。

案例:
假设我有3个csv文件(实际是350个文件),它们是file_1.csv、file_2.csv、file_3.csv。我已经完成了迭代过程/算法以将所有文件名创建到单个列表中。

每个 csv 包含单列和多行。

#actual cvs much more like this:
# for file_1.csv:
value_1
value_2
value_3

下面不是实际的 csv 内容(我的意思是我已将它们转换为数组/系列)

file_1.csv --> [['value_1'],['value_2'],['value_3']]
file_2.csv --> [['value_4'],['value_5']]
file_3.csv --> [['value_6']]

#first step was done, storing csv files name to a list, so it can be read and use in csv function.

filename = ['file_1.csv', 'file_2.csv', 'file_3.csv']

我想要结果作为列表:

#assigning a empty list
result = []

期望的结果

print (result)

out:
[{'keys': 'file_1', 'values': 'value_1, value_2, value_3'},
{'keys': 'file_2', 'values': 'value_4, value_5'}
{'keys': 'file_3', 'values': 'value_6'}]

从上面可以看出,结果的键在文件名末尾不再包含 ('.csv'),它们全部被替换。请注意,csv 值(以前作为列表或系列的列表)变成一个字符串 - 用逗号分隔。

感谢您的帮助,非常感谢

最佳答案

我想尽我所能回答这个问题(我也是新手)。

第 1 步:读取这 350 个文件名

(如果您还没有弄清楚,您可以使用 glob 模块来执行此步骤)

定义放置文件的目录,假设为“C:\Test”

directory = "C:/Test"
import glob
filename = sorted (glob.glob(directory, + "/*.csv"))

这将读取目录中的所有“CSV”文件。

第2步:读取CSV文件并将其映射到字典

result = []
import os
for file in files:
filename = str (os.path.basename(file).split('.')[0]) # removes the CSV extension from the filename
with open (file, 'r') as infile:
tempvalue = []
tempdict = {}
print (filename)
for line in infile.readlines():
tempvalue.append(line.strip()) # strips the lines and adds them to a list of temporary values
value = ",".join(tempvalue) # converts the temp list to a string
tempdict[filename] = value # Assigns the filename as key and the contents as value to a temporary dictionary
result.append(tempdict) # Adds the new temp dictionary for each file to the result list
print (result)

这段代码应该可以工作(尽管其他人可能会分享更小、更Pythonic的代码)。

关于python - 将 csv 文件分配给字典集合(列表),其中文件名作为键,文件内容作为值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53582967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com