python以文件路径为参数,python培训 | 怎么搞懂Python中的文件路径?

Python中的路径是一个很重要的概念,但是很多同学对它一知半解。在没有出问题的时候,我们可以撇开这个概念顺利运行程序,但是一旦出了很路径有关的问题,我们又容易不知所措。特别在运行有argv参数的程序的时候,需要用到命令行的方式运行成程序,这时候需要文件路径和终端路径一致。所以,我用这篇文章给大家讲清楚Python的路径问题,为了顺利跑程序保驾护航。

绝对路径和相对路径

我们先搞清楚两个最基本的概念:

绝对路径就是文件的真正存在的路径,是指从硬盘的根目录(盘符)开始,进行一级级目录指向文件。

相对路径就是以当前文件为基准进行一级级目录指向被引用的资源文件。

绝对路径有一个公认的路径原点:根目录,然后从原点走向目标文件的目录,这个路径就是绝对路径。在计算机的文件系统中,根目录指文件系统的最上一级目录,它是相对子目录来说的;它如同一棵大树的“根”一般,所有的树杈以它为起点,故被命名为根目录。

相对路径就是对于两个目标,找到连接他们之间的路径。我们这篇主要分析的是绝对路径。下面我们介绍两个重要的绝对路径,搞清楚了这两个概念你跑带有argv参数的程序就没有大问题了。

Python文件路径

Python文件大家应该十分清楚了,就是放Python代码的一个文件,它以.py结尾。而Python文件路径实际上就是.py文件存放在电脑上的位置。

比如我给将Python基础教程,建立了很多Python文件,我把它们都放在一个固定文件夹里面:

b99bb9012ae2a25f01e2c6f9c9135638.png

那么我们如何准确描述这些Python文件的路径呢?

方法很简单,就是鼠标左键单击下图中的红色框位置,就会显示code文件夹的绝对路径。

4a8f4b87453b625ec14ff189dd5c580e.png

我们把路径拷贝下来:

C:\Users\weihuang\Documents\python\code

于是顺利获得Python文件所在的路径。

终端路径

终端路径可能是一个相对陌生的概念,但是它的重要程度是非常高的。因为我们运行带有argv的Python程序的时候,只有终端找到了被运行的Python文件才可以顺利运行。就像你用机器加工材料,材料要放到机器里面一样。在这里,机器对应终端,材料对应命令行操作。

运行Python程序的时候,我们并不强制要求终端路径要和文件路径一样。比如我们用VsCode打开一个Python文件,一般情况下右键选择“在终端运行Python文件”就可以顺利运行程序。

2c9c0ff8a9c68443737f1c058b1d78a0.png

但是在我们需要用命令行操作的时候,也就有参数 argv的时候,我们要求终端路径和Python文件路径一致。

我们首先看一下VsCode终端路径,它很好识别:

977c8d8d08b66e76da4680c28dcdf843.png

如上图,终端会直接显示其所在路径。

为了让终端路径和文件路径一致,我们可以选择VsCode左上角文件(File)中的“打开文件夹”,打开到和Python文件同样的路径。

e8494b062436b5f3b0c04674ca10f3fe.png

当终端位置和Python文件路径一样的时候,我们就可以用命令行操作运行程序。

比如,如下图所示

f2fa916dae66a4cb8166c76f3000a5ae.png

我们用VsCode打开Python文件所在的路径:

C:\Users\weihuang\Documents\python\code

就会让终端路径和Python文件路径一样:

f695eeb0e105d9e06c7f90185973228a.png

到此为止,我们可以用命令行运行带有argv的程序了:

7ccb63ac7c866c4ff9ca6e2d76780a7e.png

命令行运行程序的格式是:

python+Python文件名+参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java使用`Runtime`调用Python文件并传入参数可以通过执行命令行的方式来实现。以下是一个示例: ```java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) { try { // 构建命令行命令 String pythonScriptPath = "/path/to/script.py"; String[] cmd = new String[3]; cmd[0] = "python"; // Python解释器的路径,如果已在环境变量,可以直接使用"python" cmd[1] = pythonScriptPath; cmd[2] = "argument1"; // 传递给Python脚本的参数 // 创建ProcessBuilder对象 ProcessBuilder pb = new ProcessBuilder(cmd); // 启动进程并等待其完成 Process process = pb.start(); int exitCode = process.waitFor(); // 读取Python脚本的输出 BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } if (exitCode == 0) { System.out.println("Python脚本执行成功"); } else { System.out.println("Python脚本执行失败"); } } catch (IOException | InterruptedException e) { e.printStackTrace(); } } } ``` 上述示例,通过构建命令行命令,在`cmd`数组定义了要执行的Python脚本路径和传递给脚本的参数。然后通过`ProcessBuilder`启动进程,执行Python脚本。最后可以通过读取进程的输出流来获取Python脚本的输出。 请将示例的`/path/to/script.py`替换为您实际的Python脚本路径,并根据需要修改传递给脚本的参数。 希望能帮到您!如果有任何疑问,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值