写入临时文件并从命令行读取
Write to temp file and read from command line
我需要使用 python3 将一个临时文件写入 n*x 机器,以便我可以从命令行读取它。
import tempfile
import subprocess
from os import path
string = 'hi *there*'
# run markdown server-side
tfile = tempfile.NamedTemporaryFile(mode='w+', suffix='.txt', prefix='prove-math-')
tfile.write(string)
fpath = tfile.name
markdown_path = path.join(LIB_DIR, 'Markdown.pl')
command = [markdown_path, fpath]
completed_process = subprocess.run(command, check=True, stdout=subprocess.PIPE)
string = completed_process.stdout.decode()
tfile.close()
print(string)
输出应该是'<p>hi <em>there</em></p>'
,但实际输出是'\n'
,这表明Markdown.pl
读取文件内容为'\n'
。
使用,
file_obj.flush()
在你的情况下,你必须使用
tfile.flush()
它会在被调用时写入文件!
我需要使用 python3 将一个临时文件写入 n*x 机器,以便我可以从命令行读取它。
import tempfile
import subprocess
from os import path
string = 'hi *there*'
# run markdown server-side
tfile = tempfile.NamedTemporaryFile(mode='w+', suffix='.txt', prefix='prove-math-')
tfile.write(string)
fpath = tfile.name
markdown_path = path.join(LIB_DIR, 'Markdown.pl')
command = [markdown_path, fpath]
completed_process = subprocess.run(command, check=True, stdout=subprocess.PIPE)
string = completed_process.stdout.decode()
tfile.close()
print(string)
输出应该是'<p>hi <em>there</em></p>'
,但实际输出是'\n'
,这表明Markdown.pl
读取文件内容为'\n'
。
使用,
file_obj.flush()
在你的情况下,你必须使用
tfile.flush()
它会在被调用时写入文件!