这是我的第一个问题,如果我没有用更少的话说清楚,那就很抱歉。 我正在写一个python脚本,我要求用户输入他想要执行的操作。我对特定操作(A和N)有两个功能。 我使用if-else语句检查并应用特定函数并将整个输出写入新文件。关闭文件句柄后,我在同一个复选框中调用另一个函数(if-else)。 about()其输出应根据if-else检查显示在命令提示符上,但我得到
"Value error: I/O operation on closed file."
这是我到目前为止所做的事情
obj = PhysioCal()
if (args.operation == 'N' or args.operation == 'n'):
with open (args.output,"w") as fout:
sys.stdout=fout
t_n=obj.nucleotide(obj.fasta_reader(args.input))
sys.stdout.close()
obj.about(t_n)
elif (args.operation == 'A' or args.operation == 'a'):
with open (args.output,"w") as fout:
sys.stdout=fout
t_a=obj.amino_acid(obj.fasta_reader(args.input))
sys.stdout.close()
obj.about(t_a)
else:
obj.about(0)
print("\n\t\t\tProcess Failed")
print("\t\t\aYou have seleccted wrong operation")
print("\t\tuse -h argument for help menu")
此处 t_n 和 t_a 是函数返回的时间。 关于函数在命令提示符下显示时间。
也是用于在文件中获取函数的所有输出而不是在cmd上打印的写方式吗?
答案 0 :(得分:0)
由于您Value parallelize is not a member of org.apache.spark.SparkConf
到reasigned sys.stdout
然后关闭它,程序无法再打印到stdout。您可以直接使用fout而无需重新分配即可写入。检查python文档以写入文件。