只使用已经存在的文件(python)

Posted

技术标签:

【中文标题】只使用已经存在的文件(python)【英文标题】:Only use already existing files(python) 【发布时间】:2017-10-08 11:06:27 【问题描述】:

好的,我有一个文件名作为原始输入。但是我的代码只使用一个已经存在的文件而不是并且不能输入所有内容并只创建新文件。

那么我怎样才能让程序只使用一个已经存在的文件而不是在输入错误的情况下创建一个新文件呢?

lista = "police":"911"
functiontext = raw_input("call function ")
arguments = raw_input("input file name ")

def save(lista,arguments):
     filen = arguments
     spara = lista
     fil = open(filen + ".txt","w")

for keys, values in spara.items():

        spara_content = keys + ": " + values + "\n"


        fil.write(spara_content)
        fil.close()

【问题讨论】:

【参考方案1】:

考虑使用os.path.exists() or os.path.isfile() 来测试文件是否存在。例如:

def save(lista,arguments):
    filen = arguments
    spara = lista
    fname = filen + ".txt"
    if os.path.isfile(fname):
        fil = open(filen + ".txt","w")
    else:
        print("The file  does not exist, skipping".format(fname))

【讨论】:

好的,我应该更清楚一点...有没有办法在不使用操作系统的情况下做到这一点?或者如果您是编程新手,这几乎是唯一的方法吗? 像 os 这样的所有模块要么只是底层的纯 python,要么是系统调用的包装器和类似的东西。所以实际上,是的,你可以,但你会重新发明***。你有充分的理由不使用 os 吗? 抱歉回复晚了,但是嗯……我们不允许使用pickle……所以我不知道是否允许我们使用操作系统…… Disallowing pickle 是一个有点奇怪的限制,它似乎与这个问题没有太大关系。我想说,除非另有说明,否则 os 模块非常适合使用。

以上是关于只使用已经存在的文件(python)的主要内容,如果未能解决你的问题,请参考以下文章

Python操作文件

Python使用pandas保存csv文件:如果文件存在则只添加内容(append),如果无表则同时写入表头和内容(write)

Python文件处理小结

文件的读写

python FileExistsError:[WinError 183]当文件已经存在时无法创建文件:[重复]

使用python中的子进程库验证文件或文件夹的存在