鱼C论坛

 找回密码
 立即注册
查看: 2892|回复: 22

[已解决]如何提供文件名作为命令行参数

[复制链接]
发表于 2021-10-30 12:24:32 | 显示全部楼层
你运行的方式不对,既然你要从命令行提供路径给py文件,那就要从命令行运行它:

在你的源代码目录打开cmd,输入
  1. python 你的源代码.py 你需要处理的文件的文件路径
复制代码

比如
  1. python test.py f:/1/t.txt
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-30 13:57:41 | 显示全部楼层
1005663861 发表于 2021-10-30 13:38
可以在代码里边标注文件的位置吗

你可能还没明白命令行参数是什么意思
比如你在命令行中这样运行你的源代码:
  1. python test.py 123 abc aks23 666
复制代码

那你的源代码中sys.argv的值就是[‘test.py’, '123', 'abc', 'aks23', '666']

又比如你在命令行这样运行你的源代码
  1. python test.py f:/1.txt
复制代码

你的源代码中sys.argv的值就是[‘test.py’, 'f:/1.txt']
里面的
  1. inf = open(sys.argv[1], "r")
复制代码
就相当于
  1. inf = open('f:/1.txt', "r")
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-30 14:15:33 | 显示全部楼层
1005663861 发表于 2021-10-30 14:09
我知道sys.argv的用法,就比如说这个abc.txt, 它是怎么添加到python x.py的扩展名后边,如何添加
在你的源代码目录打开cmd,输入



屏幕截图 2021-10-30 141450.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-30 14:20:35 | 显示全部楼层
1005663861 发表于 2021-10-30 14:16
F:\e\python_file\python_exercise>Python p7_149.py p7_149.txt
Traceback (most recent call last): ...

inf = open(sys.argv[1], "r")改成inf = open(sys.argv[1], "r", encoding="utf-8")
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-30 14:28:29 | 显示全部楼层
1005663861 发表于 2021-10-30 14:26
F:\e\python_file\python_exercise>Python p7_149.py p7_149.txt
Traceback (most recent call last):
...

看16楼
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-30 14:46:19 | 显示全部楼层
1005663861 发表于 2021-10-30 14:30
出问题的使cmd不是python

你按照16楼改了源代码再试试不就知道了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-30 15:09:21 | 显示全部楼层    本楼为最佳答案   
1005663861 发表于 2021-10-30 14:55
只能在cmd运行这个程序吗,不能用pycharm进行运行吗


只有从命令行运行(包括创建新进程的方式),才能给你的程序提供命令行参数。
pycharm里有终端,跟cmd是一样效果。

如果你想在pycharm中点击按钮或者右键直接运行,那你的程序完全可以在运行时再用input要求用户输入路径,或者直接把路径写到源代码里,也不是非得接收命令行参数,对不对?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-23 10:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表