在字典中加载 .csv 文件并使用 Python 在列中搜索特定条目
Load a .csv-file in a dictionary and search for a specific entry in column using Python
(Python 3) 我目前正在解决正确读取给定 .csv 文件并将数据加载到字典中的问题。由于我是新手,所以我无法找出将 .csv 数据保存在名为“loaded_csv_data”(1 Challenge) 的字典中的正确语法。我的总体目标是在“当前文件名”(2 Challenge) 列中搜索特定字符串,如果它存在 return "True" (3挑战).
Path
Current Filename
File Type
Set Date
C:\Users\Dreampeace
2021-10-06_15-10-24
.png
2021-10-06
C:\Users\Dreampeace
2021-10-03_10-10-19
.mov
2021-10-03
C:\Users\Dreampeace
2021-10-01_09-05-55
.jpg
2021-10-01
原始数据
Path;Current Filename;File Type;Set Date
C:\Users\Dreampeace;2021-10-06_15-10-24;.png;2021-10-06
C:\Users\Dreampeace;2021-10-03_10-10-19;.mov;2021-10-03
C:\Users\Dreampeace;2021-10-01_09-05-55,.jpg;2021-10-01
代码
csv_file_handle_r = open(os.path.join(Directory_History_csv, "history-test.csv"), mode = "r", encoding="utf8")
csv_reader = csv.DictReader(csv_file_handle_r, delimiter = ";")
loaded_csv_data = {}
for row in csv_reader:
print(row)
该代码对我有用,但我最终在控制台上打印了三个不同的词典。
{'Path': 'C:\Users\Dreampeace', 'Current Filename': '2021-10-06_15-10-24', 'File Type': '.png', 'Set Date': '2021-10-06'}
{'Path': 'C:\Users\Dreampeace', 'Current Filename': '2021-10-03_10-10-19', 'File Type': '.mov', 'Set Date': '2021-10-03'}
{'Path': 'C:\Users\Dreampeace', 'Current Filename': '2021-10-01_09-05-55', 'File Type': '.jpg', 'Set Date': '2021-10-01'}
感谢您的每一个回答、建议和帮助。
谢谢!
你的问题中没有包含所需的 form/structure 数据,所以我将尽力猜测。
挑战 1
csv.DictReader
返回一个字典,其中检测到的 headers 作为键,;
-sv 作为值。
我用collections.defaultdict
方便把所有东西都放在一个大字典里给你用。
import csv
from collections import defaultdict
loaded = defaultdict(list)
with open("t.csv") as in_file:
csv_reader = csv.DictReader(in_file, delimiter=";")
for row in csv_reader:
for key, value in row.items():
loaded[key].append(value)
print(loaded)
{
'Path': [
'C:\Users\Dreampeace', 'C:\Users\Dreampeace', 'C:\Users\Dreampeace'],
'Current Filename': ['2021-10-06_15-10-24', '2021-10-03_10-10-19', '2021-10-01_09-05-55'],
'File Type': ['.png', '.mov', '.jpg'],
'Set Date': ['2021-10-06', '2021-10-03', '2021-10-01'
]
}
挑战 2 和 3
从这里开始,您可以通过访问字典中的 'Current Filename'
键来获取文件名列表,并对特定字符串进行线性搜索。
(Python 3) 我目前正在解决正确读取给定 .csv 文件并将数据加载到字典中的问题。由于我是新手,所以我无法找出将 .csv 数据保存在名为“loaded_csv_data”(1 Challenge) 的字典中的正确语法。我的总体目标是在“当前文件名”(2 Challenge) 列中搜索特定字符串,如果它存在 return "True" (3挑战).
Path | Current Filename | File Type | Set Date |
---|---|---|---|
C:\Users\Dreampeace | 2021-10-06_15-10-24 | .png | 2021-10-06 |
C:\Users\Dreampeace | 2021-10-03_10-10-19 | .mov | 2021-10-03 |
C:\Users\Dreampeace | 2021-10-01_09-05-55 | .jpg | 2021-10-01 |
原始数据
Path;Current Filename;File Type;Set Date
C:\Users\Dreampeace;2021-10-06_15-10-24;.png;2021-10-06
C:\Users\Dreampeace;2021-10-03_10-10-19;.mov;2021-10-03
C:\Users\Dreampeace;2021-10-01_09-05-55,.jpg;2021-10-01
代码
csv_file_handle_r = open(os.path.join(Directory_History_csv, "history-test.csv"), mode = "r", encoding="utf8")
csv_reader = csv.DictReader(csv_file_handle_r, delimiter = ";")
loaded_csv_data = {}
for row in csv_reader:
print(row)
该代码对我有用,但我最终在控制台上打印了三个不同的词典。
{'Path': 'C:\Users\Dreampeace', 'Current Filename': '2021-10-06_15-10-24', 'File Type': '.png', 'Set Date': '2021-10-06'}
{'Path': 'C:\Users\Dreampeace', 'Current Filename': '2021-10-03_10-10-19', 'File Type': '.mov', 'Set Date': '2021-10-03'}
{'Path': 'C:\Users\Dreampeace', 'Current Filename': '2021-10-01_09-05-55', 'File Type': '.jpg', 'Set Date': '2021-10-01'}
感谢您的每一个回答、建议和帮助。 谢谢!
你的问题中没有包含所需的 form/structure 数据,所以我将尽力猜测。
挑战 1
csv.DictReader
返回一个字典,其中检测到的 headers 作为键,;
-sv 作为值。
我用collections.defaultdict
方便把所有东西都放在一个大字典里给你用。
import csv
from collections import defaultdict
loaded = defaultdict(list)
with open("t.csv") as in_file:
csv_reader = csv.DictReader(in_file, delimiter=";")
for row in csv_reader:
for key, value in row.items():
loaded[key].append(value)
print(loaded)
{
'Path': [
'C:\Users\Dreampeace', 'C:\Users\Dreampeace', 'C:\Users\Dreampeace'],
'Current Filename': ['2021-10-06_15-10-24', '2021-10-03_10-10-19', '2021-10-01_09-05-55'],
'File Type': ['.png', '.mov', '.jpg'],
'Set Date': ['2021-10-06', '2021-10-03', '2021-10-01'
]
}
挑战 2 和 3
从这里开始,您可以通过访问字典中的 'Current Filename'
键来获取文件名列表,并对特定字符串进行线性搜索。