我创建了以下功能:
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
该函数返回并打印,但是没有将其写入文件或创建它?
修改
我编辑了上面的代码,因此文件是在特定位置创建的,但它仍然不存在
答案 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提示字符串,它看起来就像你得到的输出一样来自一个空文件。