matplotlib 如何在savefig [duplicate]中引用以前创建的文件名

zwghvu4y  于 2023-11-22  发布在  其他
关注(0)|答案(3)|浏览(118)

此问题在此处已有答案

Use savefig with string and iterative index in the name(3个答案)
f-strings vs str.format()(5个答案)
Dynamic naming using savefig(2个答案)
5天前关闭。
我对python相当缺乏经验,但我有相当多的数据(csv),我需要处理和绘图。我的问题是,当使用plt.savefig时,我如何引用我以前创建的文件名中的图文件名?

print(f'Output File : {foname_str}') 
plt.savefig(str("{foname_str}"), dpi = 1000)

字符串
我想命名的文件完全一样,我已经创建了没有去目录,并复制它的名称或其路径到plt.savefig(.....)的前一个文件。它似乎上面的代码片段命名为foname_str.png文件,而不是文件的实际名称XX_YY_ZZ。

wz3gfoph

wz3gfoph1#

我之前创建的f-string有一个.csv扩展名,因此它不能被savefig使用。
在将文件保存到.png之前,我必须删除扩展名。

l7wslrjt

l7wslrjt2#

我相信你试图做一个f-stringhttps://docs.python.org/3/tutorial/inputoutput.html),但你忘记了f。试试这个:

plt.savefig(f"{foname_str}", dpi = 1000)

字符串
如果你从另一个目录运行你的python文件,那么它将保存在那个目录中。
要在同一目录中获取它,您可以这样做:

import os

filepath = os.path.join(os.path.dirname(__file__), foname_str)
ext = "png"

plt.savefig(f"{filepath}.{png}", dpi=1000)

v440hwme

v440hwme3#

  • 对于面向对象的文件系统路径,使用pathlib查找文件,使用.stem方法提取文件名,使用f-string将文件名插入savefig
from pathlib import Path
import pandas as pd
import matplotlib.pyplot as plt

# read the files from the path into a generator
files = Path('D:\\data\\files').glob('*.csv')  # or .rglob to include subdirectories

for file in files:

    # extract the existing filename without the extension from the file path
    file_name = file.stem
    print(file_name)

    # df = pd.read_csv(file)

    ...

    plt.savefig(f'{file_name}.png', dpi=1000)

字符串

  • 没有f-string
cwd = Path('D:\\data\\files')  # or Path.cwd()
files = cwd.glob('*.csv')

for file in files:

    # print the filename for review
    print(file.stem)

    # df = pd.read_csv(file)

    ...

    plt.savefig((cwd / file.stem).with_suffix('.png'), dpi=1000)

相关问题