サブプロセスの出力を追加モードで開いたファイルにダンプする必要があります
from subprocess import Popen
fh1 = open("abc.txt", "a+") # this should have worked as per my understanding
# fh1.readlines() # Adding this solves the problem
p = Popen(["dir", "/b"], stdout = fh1, shell=True)
print p.communicate()[0]
fh1.close()
ただし、上記のコードは不要なファイルabc.txt
を上書きします。コメントfh1.readlines()
を解除すると、カーソルが適切な位置に移動します。これは一時的な解決策です。
不足している基本的なものはありますか。
In [18]: fh1 = open("abc.txt",'a')
In [19]: fh1.tell() # This should be at the end of the file
Out[19]: 0L
In [20]: fh1 = open("abc.txt",'r')
In [21]: print fh1.readlines()
['1\n', '2\n', '3\n', '4\n', '5\n']