Python:内存中用于subprocess.call()当前工作目录的目录

莱纳斯·罗默(Linus Romer)

我编写了一个python脚本,该脚本读取METAFONT文件,在其上运行METAPOST(生成约250个PostScript文件),将这些PostScript文件导入FontForge中并输出OpenType字体。这是此脚本的简化版本:

import os,sys,fontforge,glob,subprocess,tempfile,shutil
if __name__ == "__main__":          
    mffile = os.path.abspath(sys.argv[1])
    tempdir = tempfile.mkdtemp()
    font = fontforge.font()
    subprocess.call(
    ['mpost',
    '&mfplain',
    '\mode=localfont;',
    'mag:=100.375;',
    'outputtemplate:="%c.eps";',
    'input %s;' % mffile,
    'bye'],
    stdout=subprocess.PIPE, 
    stderr=subprocess.PIPE,
    cwd=tempdir)
    glyph_files = glob.glob(os.path.join(tempdir, "*.eps"))
    for eps in glyph_files:
        code = int(os.path.splitext(os.path.basename(eps))[0])
        glyph = font.createChar(code)
        glyph.importOutlines(eps, ("toobigwarn", "correctdir"))
    font.generate("font.otf")
    shutil.rmtree(tempdir)
    exit(0)

目前,这250个PostScript文件存储在一个临时目录中。为了使事情更快,我希望将它们存储在内存中。因此,tempdir应该是内存中的目录。我已经尝试过MemoryFS(类似这样

from fs.memoryfs import MemoryFS
mem = MemoryFS() 
mem.makedir('temdpir')      

),但我无法弄清楚如何访问tempdir中的文件,从而

glyph_files = glob.glob(os.path.join(tempdir, "*.eps"))

作品。

您对如何访问这些文件有建议吗?谢谢你。(也欢迎使用MemoryFS的替代方法。)

备忘录

根据docs进行编码,这getsyspath是获取操作系统支持的文件路径的方法。但是,MemoryFS不会由真实的文件系统支持,并且不会覆盖的默认实现,fs.base.FS它将提高NoSysPathError

内存支持的文件系统实现将取决于您的操作系统。例如,在现代linux中,您可以挂载一个tmpfs 分区,该分区看起来像虚拟文件系统中的其他文件夹,但是文件将存储在内存中。但是请注意,如果系统内存不足,则某些页面tmpfs可能会移到交换区域。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python:从终端获取当前工作目录

来自分类常见问题

如何使用python 3获取当前工作目录?

来自分类Dev

在python中更改当前工作目录

来自分类Dev

从当前工作目录相对导入python模块

来自分类Dev

使用os模块返回位于Python当前工作目录正上方的目录名称

来自分类Dev

如何将 Python 程序的当前工作目录更改为用户的主目录?

来自分类Dev

使kitty终端模拟器将当前工作目录用于新Windows

来自分类Dev

如何以自动方式在python中设置当前工作目录

来自分类Dev

在Python中使用双反斜杠而不是单个反斜杠获取当前工作目录

来自分类Dev

如何将数据框的csv写入当前工作目录python

来自分类Dev

Python处理3为什么当前工作目录有时不同?

来自分类Dev

使用Python在当前工作目录中打印对象的路径

来自分类Dev

如何获取已编译的python(使用cxFreeze)以将当前工作目录作为可执行文件所在的目录?

来自分类Dev

PyCharm当前工作目录

来自分类Dev

当前工作目录的路径

来自分类Dev

Makefile的当前工作目录

来自分类Dev

C ++ Visual Studio当前工作目录

来自分类Dev

如何更改当前工作目录

来自分类Dev

SHAutoComplete和当前工作目录?

来自分类Dev

如何更改当前工作目录?

来自分类Dev

在Assembly中获取当前工作目录

来自分类Dev

.bashrc命令复制当前工作目录

来自分类Dev

Zsh提示与当前工作目录

来自分类Dev

打印出当前工作目录

来自分类Dev

WebStorm Dart设置当前工作目录

来自分类Dev

在Assembly中获取当前工作目录

来自分类Dev

在终端中隐藏当前工作目录

来自分类Dev

从当前工作目录上方的目录导入模块

来自分类Dev

当目录不是当前工作目录时,如何检查目录是否在 git 工作树中?

Related 相关文章

热门标签

归档