【问题标题】:how to enter in to a folder through python code on linux如何在linux上通过python代码进入文件夹
【发布时间】:2012-08-31 11:32:49
【问题描述】:

我正在研究 python(scrapy),我正在尝试使用 os 模块进入文件夹但无法做到,以下是我尝试过的

import os

scrapepath = "cd /home/local/username/project/scrapy/modulename"

os.system(scrapecmd)

结果:

0

最后,我的意图是通过上面提到的 python 代码从某个位置(例如 linux 中的家)进入一个文件夹(目标)。这里实际上我正在动态生成上面路径的一部分,然后我应该进入该路径并从该文件夹中运行一些命令

谁能告诉我如何使用上面的linux中的python代码进入文件夹。

【问题讨论】:

  • 为什么不想直接运行命令呢?例如,subprocess.call(["/path/to/my/command", "arg1", "arg2"])
  • @JohnWang:肯定有很多程序的工作目录与行为相关。
  • 我实际上正在研究scrapy,我不想直接运行命令,因为我将创建多个scrapy文件夹,每个文件夹由各个蜘蛛名称组成,因此需要进入每个文件夹并需要运行通过该蜘蛛名称命令

标签: python operating-system scrapy


【解决方案1】:

更改当前工作目录:

os.chdir("/home/local/username/project/scrapy/modulename")

您可能还想将该模块简单地添加到 python 的路径(import 所在的位置):

sys.path.append("/home/local/username/project/scrapy/modulename")

【讨论】:

  • 作为补充 - os.system 在原始问题中不起作用的原因是 os.system 创建了一个新进程 - 在该进程中更改目录然后关闭进程。
【解决方案2】:

使用os.chdir:

import os

os.chdir("/home/local/username/project/scrapy/modulename")

【讨论】:

    【解决方案3】:

    AFAIK,os.system() 在子shell 中执行字符串命令。因此,当您执行以下操作时:

    os.system("cd /path/to/directory/")
    

    cd 命令实际上将在子shell 中执行。但是,由于子shell 在os.system 执行后退出,您的cd 对您的应用程序没有实际影响。

    【讨论】:

      【解决方案4】:

      http://docs.python.org/library/os.html

      import os
      os.chdir(path)
      

      【讨论】:

        猜你喜欢
        • 2021-11-10
        • 1970-01-01
        • 2020-06-16
        • 2018-05-13
        • 2011-05-07
        • 1970-01-01
        • 2021-12-26
        • 1970-01-01
        • 2014-02-19
        相关资源
        最近更新 更多