gpt4 book ai didi

Gnuplot 脚本 : use a path relative to file rather than execution directory?

转载 作者:行者123 更新时间:2023-12-01 11:15:06 29 4
gpt4 key购买 nike

我在与我需要绘制的 .dat 文件相同的文件夹中生成一个 Gnuplot 脚本,并且我希望它能够工作,即使它是从不同的目录调用的。不幸的是,相对路径似乎从调用 Gnuplot 的目录开始工作,不是脚本文件所在的目录。比如:

gnuplot folder/script.gp

如果文件是 folder/data.dat 并且脚本显示 plot "data.dat" 将失败。有没有办法解决这个问题?就像 Gnuplot 中保存当前执行脚本位置的变量一样?

最佳答案

目录和文件名之间的分隔符是 /,所以我假设您使用的是 Linux。以下工作:

  • 如果 gnuplot 以执行脚本启动,则有一个变量 ARG0 包含在命令行中指定的完整脚本名称。
  • 通过 system 调用,我们可以将此脚本名称发送回 shell,其中有一个 dirname 命令用于提取脚本名称的目录部分。
  • 现在我们可以使用 gnuplot 内部字符串函数来构建文件路径,尤其是连接两个字符串的 .

你说你有一个 gnuplot 脚本 folder/script.gp 和一个数据文件 folder/data.txt,那么脚本应该包含这样的内容:

print ARG0       # just for debugging
working_directory = system("dirname ".ARG0)."/"
datafile = working_directory."data.dat"
outputfile = working_directory."graph.png"

print datafile # just for debugging
print outputfile # just for debugging

set terminal pngcairo
set output outputfile
plot datafile w l

如果您在“文件夹”中,它也可以工作,然后 dirname 返回 . 并且生成的数据文件将是 ./data.dat .我没有检查包含空格的“特殊”目录名称,...我不希望它起作用。

在 Debian 9.6 上使用 gnuplot 5.0.5 进行测试,gnuplot 将 sh shell 用于 system。我还没有搜索过 Windows 解决方案。

关于Gnuplot 脚本 : use a path relative to file rather than execution directory?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53086669/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com