在python中传递动态文件路径

在python中传递动态文件路径,python,python-2.7,filepath,Python,Python 2.7,Filepath,我希望能够将文件路径作为参数传递给python函数。为了使我的代码可靠,如果任何其他开发人员在他们的机器上运行我的代码,文件路径将根据用户的名称进行更改。如何在python中动态地进行此更改 例如,my函数采用以下参数: def f_path(path): my path will be : /Users/jame/Desktop/data-code/Testdata 我希望能够通过将我的名字“jame”更改为当前用户名来动态更改此文件路径。将当前工作目录设置为 import os curr

我希望能够将文件路径作为参数传递给python函数。为了使我的代码可靠,如果任何其他开发人员在他们的机器上运行我的代码,文件路径将根据用户的名称进行更改。如何在python中动态地进行此更改

例如,my函数采用以下参数:

def f_path(path):

my path will be : /Users/jame/Desktop/data-code/Testdata

我希望能够通过将我的名字“jame”更改为当前用户名来动态更改此文件路径。

将当前工作目录设置为

import os
current_directory = os.getcwd()

如果所有所需路径都在表单中

  • /用户/用户1/桌面/数据代码/测试数据

  • /用户/用户2/桌面/数据代码/测试数据

  • /用户/用户3/桌面/数据代码/测试数据

因此,我们可以定义以下功能来完成这项工作:

def foo(username):
    first = "/Users/"
    last = "/Desktop/data-code/Testdata"
    result = first + username + last 
    return result  
此函数接受字符串用户名作为输入参数,并负责返回所需的感兴趣路径

示例:

执行
foo(“Robert”)
将导致
/Users/Robert/Desktop/data-code/Testdata


执行
foo(“David”)
将导致
/Users/David/Desktop/data code/Testdata

您可以使用pathlib获取主文件夹并使用它构建路径:

从pathlib导入路径
#主页将包含“/Users/jame”之类的内容
home=str(Path.home())
path=home+“/Desktop/data-code/Testdata”
或者,如果您想用“translator”之类的内容将用户的路径开头替换为正确的用户路径:


它几乎可以在任何操作系统上工作。

使用
OS
模块:

user_home_dir = os.path.expanduser('~')
user = os.path.split(user_home_dir)[-1]
os.path.join('/Users', user, 'Desktop/data-code/Testdata')
#/Users\\User_1\\Desktop/data-code/Testdata'

我已经做了以下工作:

def get_json_location(username=os.getlogin()):
    first = "/Users/"
    last = "/Desktop/data-code/Testdata"
    result = first + username + last
    return result

因此,您的路径类似于“/Users/USER\u 1/Desktop/data code/Testdata”、“/Users/USER\u 2/Desktop/data code/Testdata”、“/Users/USER\u 3/Desktop/data code/Testdata”?这意味着只有用户名改变了,其余的都保持不变?是的,更正@LossOfHumanIdentity这个问题与我在@georgy中看过的任何问题都不一样。在用户主路径之后的“桌面/数据代码/测试数据”部分并没有减少重复。
def get_json_location(username=os.getlogin()):
    first = "/Users/"
    last = "/Desktop/data-code/Testdata"
    result = first + username + last
    return result