【问题标题】:Python relative path 2 folders upPython 相对路径 2 个文件夹向上
【发布时间】:2020-09-25 20:00:09
【问题描述】:

我得到了以下文件夹结构

ProjectX/DataProjectX/mysite/core

ProjectX/mysite/core 内部是我的 python 脚本,我用它在ProjectX/Data 内部创建一个文件。

目前我正在使用:

fileList = glob.glob(f"/var/home/USER/Documents/ProjectX/DATA/{user_name_directory}/*.pdf")

f = open(f'/var/home/USER/Documents/ProjectX/DATA/{user_name_directory}/data_text.txt','w')

如果我使用

f = open(f'~/ProjectX/DATA/{user_name_directory}/data_text.txt','w')

它不会工作。我也想在 windows 机器上运行这个 django 项目。

当脚本包含两个文件夹时,如何从主 ProjectX 文件夹写入相对路径?

如何建立 2 个文件夹,然后在 DATA 中?

编辑:

我试过了:

import os
def file_path(relative_path):
    dir = os.path.dirname(os.path.abspath(__file__))
    split_path = relative_path.split("/")
    new_path = os.path.join(dir, *split_path)
    return new_path

fileList = glob.glob(file_path(f"/ProjectX/DATA/{user_name_directory}/*.pdf"))

以及脚本的第二部分以下:

f = open(file_path(f"/ProjectX/DATA/{user_name_directory}/data_text.txt",'w'))

它不会工作。

【问题讨论】:

    标签: django python-3.x


    【解决方案1】:
    import os 
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    print(BASE_DIR)
    myurl = BASE_DIR + "/ProjectX/DATA/{user_name_directory}/data_text.txt"
    with open(myurll, "w") as f:       
         blabla
    

    【讨论】:

    • fileList = glob.glob(BASE_DIR(f"/DATA/{user_name_directory}/*.pdf"))?我收到一个错误:BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(ProjectX))) NameError: name 'ProjectX' is not defined
    • myurl = BASE_DIR + "/ProjectX/DATA/{user_name_directory}/data_text.txt" with open(myurll, "w") as f: blabla
    • 而不是(文件)使用(文件)我不知道为什么编辑器改变它你可以从django设置中复制命令
    • BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(file))) NameError: name 'file' is not defined
    • “文件”前后请使用双下划线,是编辑器改变格式的。如果您使用的是 Django,您可以在设置文件中找到该命令
    猜你喜欢
    • 2013-07-12
    • 1970-01-01
    • 1970-01-01
    • 2019-07-13
    • 1970-01-01
    • 1970-01-01
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多