Относительно приложенного .idea Я не уверен, почему, но я предполагаю, что проблема заключается в том, что существует файл или папка с именем .idea, которая берется в качестве префикса.Давайте объясним, почему я думаю, что это то, что происходит.Представьте, что в папке есть только файл с именем .idea , тогда цикл for пройдет только один раз (как мы предполагали, что в папке больше нет элементов), что приведет к file = '.idea'
, поэтому if()
терпит неудачу и переходит к другому.
Проблема в том, что, поскольку вы использовали одно и то же имя для пути и для элемента в цикле, Python выбирает второе, а не первое.Тогда внутри части else
у нас будет:
file_content = file + "Note.csv"
, и это эквивалентно
file_content = ".idea" + "Note.csv"
не так, как вы ожидали.Чтобы решить эту проблему с помощью старой версии кода, используйте это (я закомментировал исходные строки кода, которые я модифицировал):
# file = "C:/Users/PycharmProjects/MindNotez/"
file_path = "C:/Users/PycharmProjects/MindNotez/"
df_content = {"title": [], "author": [], "year": [], "others": [], "note": []}
# for file in os.listdir(file):
for file in os.listdir(file_path):
if file.endswith("Note.csv"):
# file_content = file + "Note.csv"
file_content = file_path + "Note.csv"
return file_content
else:
df = pd.DataFrame(data=df_content)
# df.to_csv(file + "Note.csv", sep=",", index=False)
df.to_csv(file_path + "Note.csv", sep=",", index=False)
file_content = file + "Note.csv"
return file_content
Попробуйте, чтобы проверить, верна ли моя догадка.Я надеюсь, что это помогло решить сомнение.