在函数中打开一个文件并写入它

时间:2010-06-30 21:56:21

标签: python

我创建了以下功能:

def print_form(x):
    f = open('/home/rv/Plone/Zope-2.10.11-final-py2.4/Extensions/test.fasta', 'w')
    f.write(str(x))
    f.close()
    return x

该函数返回并打印,但是没有将其写入文件或创建它?


修改

我编辑了上面的代码,因此文件是在特定位置创建的,但它仍然不存在

1 个答案:

答案 0 :(得分:1)

将在当前工作目录中创建'form.fasta'文件。这通常是您在调用脚本时所处的目录。

要查看当前目录是什么,请添加:

print(os.path.abspath(os.curdir))

或同等的。

另外,请确保f.write(x)x转换为适合写入的内容;您可能需要f.write(str(x))f.write(repr(x))甚至f.write(unicode(x))

最后,仅仅因为您调用f.close()并不一定意味着操作系统已立即将其刷新到磁盘。 (我似乎无法找到与C的setvbuf()函数等效的Python,它可以让您将文件流切换到无缓冲模式。)

P.S。还有一件事:如果x是一个整数,只需将其写入文件就不会以行结束字符结束文件。如果你有一个没有行结尾的单行文件,并且你打印出来,并且你就像我一样,并且有一个以行清除控制代码开头的bash提示字符串,它看起来就像你得到的输出一样来自一个空文件。