我已经编写了一个脚本,如果文件夹已经存在,那么在第一次运行时基本上会创建两个新文件夹。
import os
try:
os.makedirs('results/graphs')
except OSError:
pass
每次运行脚本时,图表都会在results/graphs
文件夹中生成。
但我最近注意到,如果脚本是从另一个目录运行的,(例如脚本在home/user/script/
但是我从home/user/programs/
运行),则新文件夹在{{1}中创建}}
我的目标是最终只在脚本文件夹中创建文件夹,因此生成的所有最终图形都将发送到home/user/programs/
。
是否有使用python实现此目的?
我使用的是Debian 8和python 2.7.13。图表是使用matplotlib生成的。
答案 0 :(得分:1)
这对我来说是一个解决方案,检查一下(我在Windows上尝试过):
import os
d = os.path.dirname(__file__) # directory of script
p = r'{}/results/graphs'.format(d) # path to be created
try:
os.makedirs(p)
except OSError:
pass
答案 1 :(得分:0)
在您的脚本中results/graphs
引用您运行脚本的任何文件夹中的结果文件夹。如果您始终希望在/home/user/script/results/graphs
中创建文件夹,请在脚本中使用~/script/results/graphs
。或者,您可以对整个路径进行硬编码,/home/user/script/results/graphs
。
答案 2 :(得分:0)
除了前面提到的硬编码之外,还有另一种方法。您可以使用 __ file __ 来提取脚本所在文件的路径。然后您可以使用它作为结果/图表
的父路径追加答案 3 :(得分:0)
感谢所有回复。从@Szabolcs在第一条评论中发布的链接中找到答案:Relative paths in Python
答案 4 :(得分:0)
您要做的就是定义脚本所在的路径。可以在代码中通过
完成此操作path = 'home/user/script/'
或通过使用文件对话框从用户那里获得输入。
然后,您可以使用path变量创建目录。
os.makedirs(path + 'results/graphs')
答案 5 :(得分:-1)
##creating folder
import tkinter as tk
from tkinter import filedialog
root = tk.Tk()
root.withdraw()
file_path = filedialog.askopenfilename()
dirctry = os.path.dirname(file_path)
toolSharePath = os.path.abspath(dirctry)
final_directory = os.path.join(toolSharePath, r'new_folder')
if not os.path.exists(final_directory):
os.makedirs(final_directory,exist_ok=True)