将shell脚本路径引用到python

将shell脚本路径引用到python,python,shell,pandas,path,substitution,Python,Shell,Pandas,Path,Substitution,嗨,我正在尝试引用一个从shell脚本到python的shell变量路径 test.ksh path1=/usr/bin/usr1/dev/data test.py df = pd.read_csv('%path1/testdataset1.dat') 我希望最后一次发言能够解决这个问题 df = pd.read_csv('/usr/bin/usr1/dev/data/testdataset1.dat') %path1不工作。我正在使用python 2.6,有两种方法:

嗨,我正在尝试引用一个从shell脚本到python的shell变量路径

test.ksh
path1=/usr/bin/usr1/dev/data

  test.py
        df = pd.read_csv('%path1/testdataset1.dat')
我希望最后一次发言能够解决这个问题

df = pd.read_csv('/usr/bin/usr1/dev/data/testdataset1.dat')
%path1
不工作。我正在使用python 2.6,有两种方法:

  • 访问Python脚本中的环境变量:

    import os
    
    path1 = os.environ.get('path1')
    if path1 is not None:
        df = pd.read_csv(os.path.join(path1, 'testdataset1.dat'))
    
    import os, sys
    
    path1 = sys.argv[1]
    df = pd.read_csv(os.path.join(path1, 'testdataset1.dat'))
    
    os.environ
    是一个包含从父进程传递的进程环境变量的字典。确保在shell脚本中导出所需的变量,即:

    export path1=/usr/bin/usr1/dev/data
    
  • path1
    作为命令行参数传递给Python脚本:

    import os
    
    path1 = os.environ.get('path1')
    if path1 is not None:
        df = pd.read_csv(os.path.join(path1, 'testdataset1.dat'))
    
    import os, sys
    
    path1 = sys.argv[1]
    df = pd.read_csv(os.path.join(path1, 'testdataset1.dat'))
    
    您的shell脚本将调用Python,如下所示:

    path1=/usr/bin/usr1/dev/data
    python your_script.py $path1
    

在您评论时已经改变了这一点:)无论如何,它仍然取决于
path1
的组件是否为所讨论的操作系统使用适当的路径分隔符。这对Python不重要,它可以处理您输入的任何路径。您可能还想使用
os.path.expanduser()