【问题标题】:How can I use files/directories in python on Linux that start with .?如何在 Linux 上的 python 中使用以 . 开头的文件/目录?
【发布时间】:2018-03-20 08:19:01
【问题描述】:

我是 python 的完整初学者,我正在制作我的第一个真正可以做任何事情的 python 脚本。我将一个目录分配给一个变量,以便我可以使用它来移动文件,但该目录包含一个以 .和 python 说它是无效的语法。那么我怎样才能让python忽略.? 编辑:这是代码

#!/usr/bin/env python
import os
Optifine = find /home/Sol33t303/.minecraft -name 
OptiFine_1.10.2_HD_U_E3.jar
shutil.move(Optifine, "/home/Sol33t303/.minecraft/mods")

【问题讨论】:

  • 请发布您的代码。这让我们更容易提供帮助。
  • 完成@ErikCederstrand

标签: python linux directory


【解决方案1】:

你正在混合两种截然不同的东西。

你是在写 Python 还是 Bash,因为这完全是 Bash:

Optifine = find /home/Sol33t303/.minecraft -name

您不能只在 Python 脚本中运行 Bash 命令!

例如,如果您想在脚本中运行 shell 命令并获取其输出,您可以使用:

Optifine = subprocess.check_output(['find', '/home/Sol33t303/.minecraft', '-name'])

然后你将输出按行拆分,foreach 行(找到文件),将其移动到所需的目的地:

for line in Optifine.splitlines():
  shutil.move(Optifine, "/home/Sol33t303/.minecraft/mods")

【讨论】:

  • 我正在阅读如何在 python 中查找文件,这里spectraldifferences.wordpress.com/2014/03/02/… 说您可以在 python 中使用 find 命令。感谢您的帮助:)
  • @Sol33t303,如果你会注意该指南,第一行显示了如何使用 shell 轻松完成,稍后将解释如何与@987654325 结合使用@。我提出了更简单的subprocess.check_output() 替代方案。
  • 在指南中它说“结合 Python 中的 subprocess 模块,很容易在 Python 脚本中使用此搜索功能”,我将其解释为您不需要这样做但是推荐的。事后看来,我有点傻。
  • @Sol33t303,重要的是现在你明白了如何将这两者结合起来:)
猜你喜欢
  • 2015-05-12
  • 2011-07-13
  • 2012-03-17
  • 1970-01-01
  • 2019-09-15
  • 2014-11-20
  • 2018-11-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多