为什么找不到我的文件,因此总是将其重新创建?

时间:2018-10-16 13:54:00

标签: python-3.x operating-system

我想在我的默认目录中查找特定的CSV文件。如果找到该文件,则该契约已完成,应将内容附加到该文件,否则,应创建该文件。

    def set_defaultfile(self):

        file = "C:/Users/PycharmProjects/MindNotez/"
        df_content = {"title": [], "author": [], "year": [], "others": [], "note": []}
        for file in os.listdir(file):
            if file.endswith("Note.csv"):
                file_content = file + "Note.csv"
                return file_content
            else:
                df = pd.DataFrame(data=df_content)
                df.to_csv(file + "Note.csv", sep=",", index=False)
                file_content = file + "Note.csv"
                return file_content

我使用return语句,以便该变量可以被其他函数使用。我一直在寻找文件的更好的“搜索”功能,但只找到了如何查找带有特定“结尾”(例如“ .txt”)的所有文件。

此功能的结果也不是创建名为“ Note.csv”的文件,而是始终将其称为“ .ideaNote.csv”。有人可以解释一下这个前缀是什么或为什么吗?

一如既往,非常感谢您的支持!

最诚挚的问候,

亚历克斯

2 个答案:

答案 0 :(得分:0)

我自己找到了一个令人满意的解决方案。

我改用以下代码:

<div class="col-md-2"><div class="form-input  form-group"><span class="glyphicon glyphicon-asterisk"></span><label for="customer.in_state" class="control-label">In-State</label><span class="input-group"><div class="Select has-value is-clearable is-searchable Select--single"><input name="customer.in_state" type="hidden" value="1"><div class="Select-control"><span class="Select-multi-value-wrapper" id="react-select-11--value"><div class="Select-value"><span class="Select-value-label" role="option" aria-selected="true" id="react-select-11--value-item">In-State</span></div><div class="Select-input" style="display: inline-block;"><input aria-activedescendant="react-select-11--value" aria-expanded="false" aria-haspopup="false" aria-owns="" role="combobox" value="" style="box-sizing: content-box; width: 5px;"><div style="position: absolute; top: 0px; left: 0px; visibility: hidden; height: 0px; overflow: scroll; white-space: pre; font-size: 14px; font-family: Helvetica, Arial, sans-serif; font-weight: 400; font-style: normal; letter-spacing: normal; text-transform: none;"></div></div></span><span aria-label="Clear value" class="Select-clear-zone" title="Clear value"><span class="Select-clear">×</span></span><span class="Select-arrow-zone"><span class="Select-arrow"></span></span></div></div></span></div></div>

但是,我仍然很感兴趣,为什么在我的第一个选项中创建了带有前缀'.idea'的文件

答案 1 :(得分:0)

关于附加的 .idea ,我不确定为什么,但是我想问题是存在一个名为.idea的文件或文件夹作为前缀。让我们解释一下为什么我认为这是正在发生的事情。假设文件夹中只有一个名为 .idea 的文件,那么for循环将只传递一次(因为我们假设文件夹中没有其他元素),结果为SyntaxError,因此raw_input()失败,然后转到其他地方。

问题在于,因为您为循环中的路径和元素使用了相同的名称,所以Python选择了后者,而不是前者。然后在file = '.idea'部分,我们将有:

if()

这等效于

else

不是您所期望的。要使用旧版本的代码解决该问题,请使用以下代码(我注释掉了我修改的原始代码行):

file_content = file + "Note.csv"

试试看我的猜测是否正确。我希望这有助于解决疑问。