我的代码类似于:
'''
This is main file
'''
path_to_file = './sample.txt'
config_file = open(path_to_file, 'a')
import functions_write as function
a = 1
if a== 1:
config_file.write("Hello World\n")
function_text = "Hi World\n"
function.write_function(function_text, path_to_file)
#
另一个用于编写函数functions_write.py
的文件def write_function(text_write, path_to_file):
config_file = open(path_to_file, 'a')
config_file.write(text_write)
config_file.close()
#################################################################
我原以为它会按顺序写
Hello World 嗨世界
但它写作: 你好世界 Hello World
关于它为什么首先在文件中编写函数的任何想法。
谢谢
答案 0 :(得分:3)
您通常不应该像文件一样有两个打开的写文件描述符。这里发生的是写入被缓冲,直到某些东西导致它们被刷新。在这种情况下,您显式调用close
中的write_function
,以便首先调用它(并且该写入被刷新)。第一次写入不会刷新,直到程序退出时隐式关闭其文件描述符上的close
。