Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何根据正在使用的文件夹更改文件路径?_Python_Excel_Openpyxl_Arcpy - Fatal编程技术网

Python 如何根据正在使用的文件夹更改文件路径?

Python 如何根据正在使用的文件夹更改文件路径?,python,excel,openpyxl,arcpy,Python,Excel,Openpyxl,Arcpy,每次我运行程序时,我都试图使此代码中的in_features路径不同,我处理了os.listdir(“./content”),但没有很好的结果,也就是说,我需要的是每次运行程序时in_features都会根据使用的文件夹进行更改,例如,路径更改后,我可以选择该文件 import arcpy import openpyxl as px def main(): wb = px.load_workbook(r"C:\Users\Hp\Desktop\Ejemplo\VINCULAC

每次我运行程序时,我都试图使此代码中的
in_features
路径不同,我处理了
os.listdir(“./content”)
,但没有很好的结果,也就是说,我需要的是每次运行程序时
in_features
都会根据使用的文件夹进行更改,例如,路径更改后,我可以选择该文件

import arcpy
import openpyxl as px

def main():
    wb = px.load_workbook(r"C:\Users\Hp\Desktop\Ejemplo\VINCULACION_S.xlsm", read_only=False, keep_vba=True)
    ws = wb['VINCULACION_SH_NUE']
    in_features = r"C:\Users\Hp\Desktop\Ejemplo\VH_Dissolve.shp"

    row_num = 3
    with arcpy.da.SearchCursor(
        in_features,
        ["COLOR", "INTERNO_DE", "CLASE_DEMA", "COUNT_AREA", "SUM_AREA", "SUM_LENGTH"],
    ) as cursor:
        for row in cursor:
            ws.cell(row=row_num, column=2).value = row[0]
            row_num += 1
    wb.save(r"C:\Users\Hp\Desktop\Ejemplo\VINCULACION_S.xlsm")

if __name__ == "__main__":
    main()

为了动态获取脚本当前运行的目录的路径,您可以尝试以下操作:

从pathlib导入路径
in_feature=str(路径(_file__;).parent/Path(“VH_dissole.shp”))

因此,如果您的脚本是从“C:\Users\NewDir\ejempo”运行的,则功能中的
值将自动为
C:\Users\NewDir\ejempo\VH\u dissole.shp

谢谢@Laurent,它按预期工作,我可以给它很多用途。