Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我是否可以指定或获取Abjad(v3.2)输出的PDF文件';创建后的路径或名称?_Python_Pdf_Flask_Metadata_Lilypond - Fatal编程技术网

Python 我是否可以指定或获取Abjad(v3.2)输出的PDF文件';创建后的路径或名称?

Python 我是否可以指定或获取Abjad(v3.2)输出的PDF文件';创建后的路径或名称?,python,pdf,flask,metadata,lilypond,Python,Pdf,Flask,Metadata,Lilypond,我有一个flask服务器,它使用abjad v3.2生成音乐PDF 使用abjad.show()后,我想获取创建文件的路径。 我可以使用abjad.Configuration().abjad_output_directory获取输出目录,但不能使用我创建的特定文件 我的问题是,如何获取刚刚创建的文件(不是文件夹,而是特定文件)的路径,以便将其发送回用户 创建PDF文件的My python代码: staff = abjad.Staff(abjad_notes) # attach BPM to n

我有一个flask服务器,它使用abjad v3.2生成音乐PDF

使用
abjad.show()
后,我想获取创建文件的路径。 我可以使用
abjad.Configuration().abjad_output_directory
获取输出目录,但不能使用我创建的特定文件

我的问题是,如何获取刚刚创建的文件(不是文件夹,而是特定文件)的路径,以便将其发送回用户

创建PDF文件的My python代码:

staff = abjad.Staff(abjad_notes)

# attach BPM to notes file
metronome_mark = abjad.MetronomeMark((1, 4), bpm)
abjad.attach(metronome_mark, staff[0])

# creates lilypond file object
lilypond_file = abjad.LilyPondFile.new(staff)

# notes title
lilypond_file.header_block.title = abjad.Markup(title)

# show PDF on screen
abjad.show(lilypond_file)

在Abjad 3.2中,您可以使用
Abjad.persist
手动设置Abjad生成的
.ly
.pdf
文件的输出路径(而不是让Abjad在默认文件夹
~/.Abjad/output
中创建它们)

要使用它,首先创建一个实例化
abjad.LilyPondFile
lilypond\u文件变量,然后将其用作
abjad.persist.as\u pdf(lilypond\u文件,'/path/To/file.pdf')
。在上面的最小示例中,这变成:

staff = abjad.Staff(abjad_notes)

# attach BPM to notes file
metronome_mark = abjad.MetronomeMark((1, 4), bpm)
abjad.attach(metronome_mark, staff[0])

# creates lilypond file object
lilypond_file = abjad.LilyPondFile.new(staff)

# notes title
lilypond_file.header_block.title = abjad.Markup(title)

# save pdf file at a custom location
abjad.persist.as_pdf(lilypond_file, '/path/to/file.pdf')

我不知道这是否对您有帮助,但您可以使用
abjad.PersistenceManager
手动设置abjad生成的
.ly
.pdf
文件的输出路径(而不是让abjad在文件夹
~/.abjad/output
中创建它们)。下面是一个如何使用它的示例:创建
lilypond\u文件
变量后,将其用作
abjad.PersistenceManager(lilypond\u文件).as\u pdf('~/output\u score.pdf')
。如果这有帮助,让我知道,我可以写它作为一个正确的答案,而不是作为一个评论。@gilbertohasnofb它工作了,非常感谢。但我有一些补充。你的代码是ABJAD3.0的。在v3.2中,它应该像
abjad.persist.as_pdf(lilypond_文件,“/path/to/file.pdf”)
。它帮助了我,满足了我的需要,谢谢!是的,不幸的是Abjad的向后兼容性很差,它们不断重命名函数和类,所以这总是很棘手。我还没有升级到3.1,因为我现在在一些项目的中间。我现在将创建一个反映这些情况的答案。