Это зависит от того, хотите ли вы иметь длинное имя файла, содержащее весь user_kw_list
, или если вы хотите сохранить файл для каждого ключевого слова в вашем списке.
В любом случае, возможно, стоит поискать f-строки в. Если ваша версия Python поддерживает его, это очень кратко по сравнению с методом форматирования и хорошо оптимизировано. Подробнее о f-строках здесь .
Если вам нужно длинное имя файла, вам нужно join
элементы вместе. В этом случае вам почти наверняка не понадобится понимание списка. Вот одно из возможных решений:
user_kw_list = ['ray ban','abaco sunglasses']
joined = ('_or_').join(user_kw_list).replace(' ', '_')
# .replace(' ', '_') is optional. It maintains the snake_case naming convention.
path = f"./data/{joined}_interest_over_time.csv"
# This is functionally similar to: "./data/{}_interest_over_time.csv".format(joined)
interest_over_time_df.to_csv(path, index=True)
# This will save the file as ./data/ray_ban_or_abaco_sunglasses_interest_over_time.csv
# Note: Very long filenames can sometimes cause problems on some operating systems.
И наоборот, если вы хотите сохранить файл для каждого ключевого слова в вашем списке, проблема в том, что ваш l oop содержится внутри вызова метода. Должно быть наоборот: for l oop инкапсулирует метод to_csv
.
Традиционный for-l oop может быть более читаемым для этого варианта использования, поскольку вы выполнение кода с побочными эффектами вместо возврата переменной.
Одно решение будет выглядеть так:
user_kw_list = ['ray ban','abaco sunglasses']
for kw in user_kw_list:
kw = kw.replace(' ', '_')
# As before, this line is optional. It maintains the snake_case convention.
path = f"./data/{kw}_interest_over_time.csv"
# This is functionally similar to: "./data/{}_interest_over_time.csv".format(kw)
interest_over_time_df.to_csv(path, index=True)
# This will save two files: ray_ban_interest_over_time.csv
# and abaco_sunglasses_interest_over_time.csv
Если второй случай должен быть пониманием списка, это будет выглядеть вот так:
[interest_over_time_df.to_csv(f"./data/{kw}_interest_over_time.csv", index=True) for kw in user_kw_list]