Python中文
首页
教程
问答
标签
搜索
登录
注册
Python Click脚本访问自己的模块目录需要什么?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>如何使用主目录中任意位置的Python Click脚本,并让脚本访问模块目录中的configs?在</p> <p>假设我有一个名为<code>ClickDir</code>的小脚本,它位于我的主目录<code>~/bin</code>。下面是一个简单脚本的树:</p> <pre><code>. ├── ClickDir │ ├── config │ │ └── helloworld_input.txt │ ├── __init__.py │ └── scripts │ ├── clickscript.py │ └── __init__.py ├── HelloWorld_output.txt └── setup.py </code></pre> <p>这是一个非常无用的剧本。它读取<code>config</code>中的一个文件,并将此文本与您选择的输入文本文件连接起来。最后,它将<code>HelloWorld_output.txt</code>写入与输入文件相同的目录中</p> <p><code>Usage: ClickDir [OPTIONS] INPUT</code></p> <p>我可以从任何地方调用Click函数,但是Click也会相对于<code>config/helloworld_input.txt</code>的目录查找。因此,脚本无法找到配置输入</p> ^{pr2}$ <p>我需要在Linux和Windows中都应用此功能(Anaconda on Win 10)</p> <p>更新:</p> <pre><code>import click import os dir_path = os.path.dirname(os.path.realpath("config/helloworld_input")) #@cli.command() @click.command() @click.argument('input', type=click.File('rb')) @click.option('--saveas', default='HelloWorld.txt', type=click.File('wb')) def inout(input, saveas): with open(dir_path + "/helloworld_input") as conf: print(conf.read()) while True: chunk = input.read(1024) if not chunk: break saveas.write(chunk) </code></pre> <p>我的脚本位于: <code>/home/xtian/Documents.x/Projects/CliTools.d/ClickDir/scripts</code></p> <p>我备份了几个目录,并从项目中运行脚本,但不幸的是,下面描述的解决方案只是从调用目录调用--与之前相同: <code>FileNotFoundError: [Errno 2] No such file or directory: '/home/xtian/Documents.x/Projects/config/helloworld_input'</code></p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您可以使用<code>__file__</code>伪变量来查找脚本所在的目录。在</p> <p><code>dir_path = os.path.dirname(os.path.realpath(__file__))</code></p> <p>然后您可以使用<code>os.path.join</code>组合数据文件的完整路径</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
将Pandas数据帧转换为PyTorch张量?
3 回答
将Pandas数据帧转换为scipy稀疏矩阵
2 回答
将Pandas数据帧转换为Spark Datafram时出现问题
10 回答
将pandas数据帧转换为spark DataFram时出错
4 回答
将Pandas数据帧转换为spark datafram时收到错误
6 回答
将Pandas数据帧转换为Spark数据帧
1 回答
将Pandas数据帧转换为Tensorflow数据
4 回答
将Pandas数据帧转换为tkinter obj
3 回答
将pandas数据帧转换为XML
8 回答
将Pandas数据帧转换为值sql语句
10 回答
将pandas数据帧转换为元组
8 回答
将pandas数据帧转换为元组列表
6 回答
将pandas数据帧转换为元组列表并删除所有pandas数据类型
4 回答
将pandas数据帧转换为具有头和数据类型的numpy数组
9 回答
将pandas数据帧转换为内存中的拼花地板,并将其加载到Python中的Hadoop中
3 回答
将pandas数据帧转换为内存中类似文件的对象?
6 回答
将Pandas数据帧转换为内存功能(&F)
10 回答
将pandas数据帧转换为列表列表
1 回答
将pandas数据帧转换为列表列表以输入到RNN
10 回答
将Pandas数据帧转换为单行DataFram
7 回答