我为一个自动化项目运行了一系列脚本。其中一个脚本创建了一个名为“cloned_git_repo”的文件夹。下一个脚本需要在该文件夹中查找要运行转换的文件。我如何让我的Python脚本自动地从那个文件夹开始工作? 代码如下:
result = [y for x in os.walk('/Users/user.name/Desktop/automation_project/cloned_git_repo') for y in glob(os.path.join(x[0], '*.csv'))]
我不需要硬编码该目录路径,而是如何让它自动到达'cloned_git_repo'并继续程序的其余部分。它不能被硬编码,因为不同的人在不同的机器上运行这个脚本,所以‘/Users/user.name/Desktop/automation_project/cloned_git_repo’在每台机器上是不同的。谢谢! 问题来源StackOverflow 地址:/questions/59382744/how-do-i-find-a-directory-on-a-system-no-matter-where-it-is-in-python
您要做的是访问一个环境变量,例如$HOME,然后您的脚本将接管它。这比Python稍微高一点(任何脚本都可以这样做)。 在Python中,您可以使用:
import os
HOME = os.getenv('HOME')
去得到它。 一种更简洁(且跨平台)的方法是使用os.path.expanduser(),例如:
import os
HOME = os.path.expanduser('~')
在这两种情况下,您都应该在HOME中获取路径的/Users/user.name部分,您可以从那里获取它。 例如:
result = [
y
for x in os.walk('/Users/user.name/Desktop/automation_project/cloned_git_repo')
for y in glob(os.path.join(x[0], '*.csv'))]
可能成为:
import os
HOME = os.path.expanduser('~')
result = [
y
for x in os.walk(os.path.join(HOME, 'Desktop/automation_project/cloned_git_repo'))
for y in glob(os.path.join(x[0], '*.csv'))]
更灵活的方法是使用更高级的包,例如appdir,它提供了跨平台的方法来访问各种标准路径。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。