2010-06-30 57 views
0

我创建了以下功能:在函数打开一个文件,并写入它

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 

该函数返回和印刷品,但它犯规写入一个文件或创建它?


编辑

我editied上面的代码所以在特定位置创建的文件,但它仍然心不是有

+3

你确定你正在寻找该文件的正确位置吗?你如何调用脚本? – Amber 2010-06-30 21:58:30

+0

你是什么意思,它打印? – 2010-06-30 22:00:58

+0

将变量解析为函数。例如name ='david', print print_form(name) – 2010-06-30 22:04:06

回答

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提示字符串,它看起来就像你得到的输出从一个空文件。

相关问题