首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将路径参数/变量从批处理文件传递到sys.argv[]时,python会给出最后一个目录,而不是整个字符串

在批处理文件中,当将路径参数/变量传递给sys.argv[]时,Python会将最后一个目录作为参数,而不是整个字符串。

sys.argv[]是Python中的一个列表,用于存储命令行参数。它包含了执行Python脚本时传递的所有参数,包括脚本本身的名称。

当在批处理文件中将路径参数传递给Python脚本时,可以使用以下方法来获取完整的路径字符串:

  1. 使用双引号将路径参数括起来,以确保整个路径被视为一个参数。例如:
  2. 使用双引号将路径参数括起来,以确保整个路径被视为一个参数。例如:
  3. 在脚本中,可以通过sys.argv[1]来获取完整的路径字符串:"C:\path\to\file.txt"。
  4. 在批处理文件中使用反斜杠(\)来转义路径中的特殊字符。例如:
  5. 在批处理文件中使用反斜杠(\)来转义路径中的特殊字符。例如:
  6. 在脚本中,可以通过sys.argv[1]来获取完整的路径字符串:"C:\path\to\file.txt"。

无论使用哪种方法,sys.argv[]都会将最后一个目录作为参数,而不是整个字符串。如果需要获取整个路径字符串,可以在脚本中进行处理,例如使用os模块的os.path.join()函数来拼接路径。

以下是一个示例代码,演示如何处理路径参数并获取完整的路径字符串:

代码语言:txt
复制
import sys
import os

# 获取最后一个目录
last_directory = os.path.basename(sys.argv[1])

# 获取完整的路径字符串
full_path = os.path.join(sys.argv[1], last_directory)

print("完整的路径字符串:", full_path)

在这个例子中,假设批处理文件传递的路径参数是"C:\path\to\file.txt"。脚本将获取最后一个目录名"file.txt",然后使用os.path.join()函数将路径参数和最后一个目录名拼接成完整的路径字符串:"C:\path\to\file.txt"。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云函数(云原生无服务器计算服务):https://cloud.tencent.com/product/scf
  • 腾讯云云服务器(弹性计算服务):https://cloud.tencent.com/product/cvm
  • 腾讯云对象存储(云存储服务):https://cloud.tencent.com/product/cos
  • 腾讯云数据库(云数据库服务):https://cloud.tencent.com/product/cdb
  • 腾讯云人工智能(AI服务):https://cloud.tencent.com/product/ai
  • 腾讯云物联网(物联网平台):https://cloud.tencent.com/product/iotexplorer
  • 腾讯云移动开发(移动应用开发平台):https://cloud.tencent.com/product/mad
  • 腾讯云区块链(区块链服务):https://cloud.tencent.com/product/baas
  • 腾讯云视频处理(云视频处理服务):https://cloud.tencent.com/product/vod
  • 腾讯云音视频通信(实时音视频通信服务):https://cloud.tencent.com/product/trtc
  • 腾讯云安全产品(云安全服务):https://cloud.tencent.com/product/saf
  • 腾讯云元宇宙(云VR服务):https://cloud.tencent.com/product/vr
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python 自动化指南(繁琐工作自动化)第二版:九、读取和写入文件

调用os.path.basename(path)返回一个字符串,该字符串包含path参数最后一个斜杠之后的所有内容。路径目录(或dir)名和基本名在图 9-5 中列出。...你可以认为这是在一个变量中附加一个列表,不是完全覆盖这个变量'a'作为第二个参数传递给open(),以附加模式打开文件。... Python 3.6 开始,您还可以向open()函数传递一个Path对象,不是文件名的字符串。...用shelve模块保存变量 您可以使用shelve模块 Python 程序中的变量保存到二进制文件中。这样,您的程序可以数据硬盘恢复变量中。...总结 文件被组织文件夹(也称为目录)中,路径描述文件的位置。计算机上运行的每个程序都有一个当前工作目录,这允许您指定相对于当前位置的文件路径不是总是键入完整(或绝对)路径

3.5K51

使用命令行界面运行Python脚本

我们可以在命令行上键入不同的参数并将这些参数传递脚本中,不是每次运行脚本都更改.py文件中的代码。因此,使用CLI是非常灵活和方便的,而且,黑屏启动程序让你更酷,更像一个真正的程序员。...我们还将稍微调整代码,定义三个变量不是硬编码程序中的所有值:PDF源文件、要提取的页面,以及最终生成的PDF,此设置允许我们在任何PDF文件上使用该程序。...下面进入有趣的部分,我们希望在运行程序时从命令行传递这三个变量。 步骤4:从命令行解析参数 从命令行解析参数的最简单方法是使用sys.argv,它是传递Python脚本的命令行参数列表。...在我们的小程序中,打印:sys.argv的数据类型、长度以及其中的元素,结果如下图2所示。 图2 好了,现在我们已经了解了命令行输入传递Python脚本中的基础知识。...最后,我们所有解析的参数赋值一个名为args的变量中,可以通过调用args.input、args.output和args.pages来访问每个参数

2.8K30
  • Python生成目录

    2.1 标准库pathlib介绍 Python一个标准文件路径处理库 os.path , Python3.4 开始,Python 又加入了一个标准库 pathlib ,该库是跨平台的、面向对象的路径操作库...(p.is_file()) 判断 p 是不是目录: print(p.is_dir()) 2.2 代码实现 思路:给出一个路径,判断是否为文件,如果是,则字符串拼接;否则,字符串拼接并且递归查询该目录下的文件...上述程序有一个缺点,就是执行时只能显示程序文件所在目录目录树结构,想要生成其目录目录树结构就需要将其拷贝那个目录执行。...这样很不方便,我们可以利用命令参数目标路径传递给程序,然后进行显示。上述generate_tree() 不需要修改。...2.5 改进,封装 上述功能已经实现,但是用到了全局变量,既然是一个完整的功能不如封装成一个类。

    5.2K20

    批处理for命令的用法_cmd批处理命令

    要避免批处理参数 %0 %9 混淆,对 variable 可以使用除数字 0 9 之外的任何字符。对于简单的批处理文件,单个字符即可奏效,例如 %%f。...这一直继续下去,直到处理完与 set 值相对应的所有文件(或文件组)为止。 使用 in 和 do 关键字 In 和 do 不是参数,但必须将它们与 for 一起使用。...,则为匹配 set 的每个目录不是指定目录中的文件组)执行指定的 command。...tokens=x,y,m-n 指定将哪些令牌每行传递每个迭代的 for 正文。结果就分配了附加变量名称。m-n 格式是一个范围,指定 mth nth 的令牌。...如果 tokens=字符串最后一个字符是星号 (*),则将分配附加的变量,并在解析的最后一个令牌后在行上接收剩余的文本。

    2.3K30

    windows批处理命令教程的书籍有哪些_windows脚本命令

    通过 nth 符号指定 m 符号字符串中的最后一个字符星号,那么额外的变量将在最后一个符号解析之分配并接受行的保留文本。...%~tI – %I 扩充到文件的日期/时间 %~zI – %I 扩充到文件的大小 %~$PATH:I – 查找列在路径环境变量目录,并将 %I 扩充 找到的第一个完全合格的名称。...如果环境变量 未被定义,或者没有找到文件,此组合键扩充 空字符串 可以组合修饰符来得到多重结果: %~dpI – 仅 %I 扩充到一个驱动器号和路径 %~nxI – 仅 %I 扩充到一个文件名和扩展名...%~fsI – 仅 %I 扩充到一个带有短名的完整路径名 %~dp$PATH:i – 查找列在路径环境变量目录,并将 %I 扩充 找到的第一个驱动器号和路径。...不同点:goto流程跳转到标签处后,程序标签处开始执行结束,整个流程执行完毕;call流程跳转到标签处后,程序标签处开始执行结束[1],然后会跳转回执行call的下一条语句,直到整个流程执行完毕

    5K10

    Python基础教程(四)

    sys模块 sys模块主要是针对与Python解释器相关的变量和方法,不是主机操作系统。...当参数非0引发一个SystemExit异常,可以在程序中捕获该异常 sys.version #获取Python解释程器的版本信息 sys.maxsize #最大的Int值,64位平台是2**63...,我们看看就够了,了解下sys.argv和sys.path就足够了 sys.argv一个脚本执行参数列表,列表的第一个元素是脚本名称,第二个元素开始才是真正的参数。...在Python启动,sys.path根据内建规则和PYTHONPATH变量进行初始化。sys.path的第一个元素通常是个空字符串,表示当前目录。...()和os.path.isdir()函数分别检验给出路径一个文件还是目录 os.path.existe()函数用来检验给出路径是否真地存在 类中的特别方法 名称 说明 init(self,...)

    73430

    电脑ping命令显示不是内部命令_cmd一直ping的命令

    系统变量中path的作用是引导系统path中设置的根目录开始,查找匹配的路径,并组成新的路径,从而执行文件。如果path变量设置不当就会使得系统无法查找到相关文件从而出错。...也就是说用户在命令提示符后输入文件名后,系统自动到c:\windows\system32的目录下去寻找文件,不管用户在哪个命令提示符后输入。...windows终端输入ipconfig,显示不是内部或外部命令,也不是可运行的程序或批处理文件,这是环境变量的问题: 右键我的电脑→→→属性→→→高级系统设置→→→(高级)环境变量 在弹出的窗口 …...拦截机制之后端国际化心得 需求 前端请求的header里带有Prefer_Lang参数,向后端传递国际化信息,后端需要在处理业务之前(建立拦截机制),Prefer_Lang保存于线程上下文....必须给出一个参数 self # 形参的第一 … WD backup西部盘数据备份 西部数据(WD),硬盘备份数据!防止数据丢失.损坏….

    2.3K30

    Python和R整合进一个数据分析流程

    历史上看,尽管把两者分割开来是因为教育背景:统计学家们倾向用R,程序员则选择了Python语言。...需要注意的是,如果在路径名中有空格,整个文件路径必须用双引号括起来。 这是空格分隔的参数列表用来解析脚本本身。请注意,这些不能作为字符串传递。...sys模块包含了系统具体的参数和函数,在这里,我们只对 argv的属性感兴趣。这个argv属性是所有被传递当前正在执行脚本的参数列表。表中的第一个元素是正在被执行的脚本的完整路径。...)) print(my_args) 如果你只希望保留传递脚本的参数,你可以使用列表切片来选择除了第一个元素以外的所有参数。...最后一个困难可能是R脚本路径名称中的空格处理引起的。解决这一问题最简单的方法是为全路径名称加上双引号,然后用单引号封装此字符串,这样,R保留参数本身的双引号。

    2.4K80

    Python和R整合进一个数据分析流程

    Python中调用R或在R中调用Python,为什么是“和”不是“或”?...历史上看,尽管把两者分割开来是因为教育背景:统计学家们倾向用R,程序员则选择了Python语言。...需要注意的是,如果在路径名中有空格,整个文件路径必须用双引号括起来。 ▲这是空格分隔的参数列表用来解析脚本本身。请注意,这些不能作为字符串传递。...sys模块包含了系统具体的参数和函数,在这里,我们只对 argv的属性感兴趣。这个argv属性是所有被传递当前正在执行脚本的参数列表。表中的第 一个元素是正在被执行的脚本的完整路径。...最后一个困难可能是R脚本路径名称中的空格处理引起的。解决这一问题最简单的方法是为全路径名称加上双引号,然后用单引号封装此字符串,这样,R保留参数本身的双引号。

    3.1K80

    bat批处理命令教程_windows批处理命令脚本

    %,不是123456 14、shift 更改批处理文件中可替换参数的位置。...(本人已查过,网上也查不到相关资料) <,输入重定向命令,文件中读入命令输入,不是键盘中读入。...,这就是" %I 扩展一个完全合格的路径名"的作用 也就是如果%i变量的内容是一个文件名的话,他就会把这个文件所在的绝对路径打印出来,不只单单打印一个文件名,自己动手动实验下就知道了!...如果环境变量名 未被定义,或者没有找到文件,此组合键扩展字符串 这是最后一个,和上面那些都不一样,我单独说说!...%[1-9]表示参数参数是指在运行批处理文件在文件名后加的以空格(或者Tab)分隔的字符串变量可以%0%9,%0表示批处理命令本身,其它参数字符串用%1%9顺序表示。

    7K100

    Python 自动化指南(繁琐工作自动化)第二版:六、字符串操作

    因为这是一个原始字符串Python 反斜杠视为字符串的一部分,不是转义字符的开始。...True 如果您只需要检查字符串的第一部分或最后一部分是否等于另一个字符串不是整个字符串,这些方法是== equals 运算符的有用替代方法。...可选的第二个参数rjust()和ljust()指定一个填充字符不是一个空格字符。...第二步:处理命令行参数 命令行参数存储在变量sys.argv中。(关于如何在你的程序中使用命令行参数的更多信息,请参见附录 B 。)...但是pyperclip.copy()期望的是单个字符串值,不是字符串值的列表。要生成这个单个字符串值,lines传递join()方法中,列表的字符串中获取一个单个连接的字符串

    3.2K30

    Python 学习入门(35)—— 模块

    然后,我们通过F:\Pro-files\workspace\myPython\com\homer目录进入python的命令行模式,这样就可以当前目录作为工作目录,从而也就可以顺利的找到了module...参数传递 参数传递主要是指作为执行模块需要传递参数,通过python解释器执行某一个执行模块传递参数的使用如下: F:\Pro-files\workspace\myPython\com\homer>...5 python解释器会将所有传递参数存储在sys.argv这个列表中,所有的参数都被当成字符串进行处理。...同时即使不传递任何参数,也会有一个默认的参数sys.argv[0]标识当前模块的名称(如module_2.py),所以我们自己使用的参数都是sys.argv[1]开始的,下标1表示第一个传递参数,依次类推...知道了这个路径搜索规律后,我们就可以很方便的某些目录动态的增加到搜索路径中去,比如在E盘下建立一个python模块module_4.py,内容如下: # -*- coding:utf-8 -*- ''

    74020

    Python3 编程笔记

    __.py 的文件,这个文件是必须存在的,否则, Python 就把这个目录当成普通目录不是一个包。...特殊地:a[::-1] 相当于 a[-1:-len(a)-1:-1],也就是最后一个元素一个元素复制一遍,即倒序。...global 关键字作用 根据一个变量起作用的范围不同,可以变量分为全局变量与局部变量: 全局变量在全局范围内起作用,局部变量一个函数内部起作用 一般全局变量是不可以更改的,但是在 python 中...Python3 与 Python2 range 函数 Python3 range() 函数返回的是一个可迭代对象(类型是对象),不是列表类型, 所以打印的时候不会打印列表。...sys.argv 用法 sys.argv[] 用来获取命令行参数sys.argv[0] 表示文件路径本身,所以参数 sys.argv[1] 开始 super() 函数 深入理解 super() 函数在类的继承中

    86510

    0开始的Python学习017Python标准库

    Python程序运行的时候,即不是在交互模式下,在sys.argv列表中总是至少有一个项目。它就是当前运行的程序名称,作为sys.argv[0](由于Python0开始计数)。...os.getcwd()函数得到当前工作目录,即当前Python脚本工作的目录路径。 os.getenv()和os.putenv()函数分别用来读取和设置环境变量。...os.linesep字符串给出当前平台使用的行终止符。例如,Windows使用'\r\n',Linux使用'\n'Mac使用'\r'。...os.path.split()函数返回一个路径目录名和文件名。...类似地,os.path.existe()函数用来检验给出路径是否真地存在。 你可以利用Python标准文档去探索更多有关这些函数和变量的详细知识。你也可以使用help(sys)等等

    47120

    bat批处理命令大全_文件批处理命令

    这样就可以不等待输入直接修改当前日期 28 %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %* 命令行传递给批处理的参数 %0 批处理文件本身 %1 第一个参数 %9 第九个参数 %*...一个参数开始的所有参数参数(%n)的替代已被增强。...您可以使用以下语法: %~1 - 删除引号(" ), 扩充 %1 %~f1 - %1 扩充到一个完全合格的路径名 %~d1 - 仅 %1 扩充到一个驱动器号 %~p1 - 仅 %1 扩充到一个路径...如果环境 变量名未被定义,或者没有找到文件,此组合键 扩充到空字符串 可以组合修定符来取得多重结果: %~dp1 - 只将 %1 扩展驱动器号和路径 %~nx1 - 只将 %1 扩展文件名和扩展名...%~dp$PATH:1 - 在列在 PATH 环境变量中的目录里查找 %1, 并扩展找到的第一个文件的驱动器号和路径

    4.1K30

    黑客级别的批量处理文件

    /时间 %~zI - %I 扩充到文件的大小 %~$PATH:I - 查找列在路径环境变量目录,并将 %I 扩充 找到的第一个完全合格的名称。...如果环境变量 未被定义,或者没有找到文件,此组合键扩充 空字符串 可以组合修饰符来得到多重结果: %~dpI - 仅 %I 扩充到一个驱动器号和路径 %~nxI - 仅 %I 扩充到一个文件名和扩展名...%~fsI - 仅 %I 扩充到一个带有短名的完整路径名 %~dp$PATH:i - 查找列在路径环境变量目录,并将 %I 扩充 找到的第一个驱动器号和路径。...二.如何在批处理文件中使用参数 批处理中可以使用参数,一般1% 9%这九个,当有多个参数需要用shift来移动,这种情况并不多见,我们就不考虑它了。....& 、<& < 文件中不是键盘中读入命令输入。 >& 一个句柄的输出写入一个句柄的输入中。 <& 从一个句柄读取输入并将其写入一个句柄输出中。

    2.1K30

    黑客级别的批量处理文件

    /时间 %~zI - %I 扩充到文件的大小 %~$PATH:I - 查找列在路径环境变量目录,并将 %I 扩充 找到的第一个完全合格的名称。...如果环境变量 未被定义,或者没有找到文件,此组合键扩充 空字符串 可以组合修饰符来得到多重结果: %~dpI - 仅 %I 扩充到一个驱动器号和路径 %~nxI - 仅 %I 扩充到一个文件名和扩展名...%~fsI - 仅 %I 扩充到一个带有短名的完整路径名 %~dp$PATH:i - 查找列在路径环境变量目录,并将 %I 扩充 找到的第一个驱动器号和路径。...二.如何在批处理文件中使用参数 批处理中可以使用参数,一般1% 9%这九个,当有多个参数需要用shift来移动,这种情况并不多见,我们就不考虑它了。....& 、<& < 文件中不是键盘中读入命令输入。 >& 一个句柄的输出写入一个句柄的输入中。 <& 从一个句柄读取输入并将其写入一个句柄输出中。

    2.6K50

    配置点击就能运行Python程序的bat批处理脚本

    Python、Java程序需要安装好JDK并配置好环境变量)。...5,把bat文件放桌面 把bat移到桌面,运行更方便,程序和数据仍然在特定文件夹下,这时候可以直接写 python d:/文件夹路径/python文件名.py,保存后运行就可以。 ?...在桌面运行bat文件例子 6,运行bat中传参数 一般比较推荐把参数写入Python程序里,但也可以在批处理文件中传参数。bat中的语法是 python文件名.py参数1参数2。...())) # for i in range(1, len(sys.argv)): #有哪些参数 print("参数{0}为:{1}".format(i, sys.argv[i])) #对参数进行处理...Linux 用Linux的同学大部分都习惯于直接写命令行了,语法和Windows下的一致,首先定位Python程序所在的目录下,然后用 python maincode.py运行。

    8.6K10

    python - sys模块

    python sys模块详解:    sys.argv           命令行参数List,第一个元素是程序本身路径   sys.modules.keys() 返回所有已经导入的模块列表    ...os.getcwd()函数得到当前工作目录,即当前Python脚本工作的目录路径。 os.getenv()和os.putenv()函数分别用来读取和设置环境变量。...os.linesep字符串给出当前平台使用的行终止符。例如,Windows使用'\r\n',Linux使用'\n'Mac使用'\r'。...os.path.split()函数返回一个路径目录名和文件名。 os.path.isfile()和os.path.isdir()函数分别检验给出路径一个文件还是目录。...(name):分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名分离,同时它不会判断文件或目录是否存在) os.path.splitext():分离文件名与扩展名 os.path.join

    74920
    领券