【发布时间】:2018-10-31 19:22:26
【问题描述】:
在 python 上是否可以像设置局部变量一样设置工作目录 (os.chdir('path'))?我的意思是,只有在调用函数时才可以使用不同的目录?
即我有:
foo_function
|
module1---a.json
| |
| b.csv
|
module2---a.json
| |
| b.csv
module3
我想要(示例):
my_path_1 = '/module1/'
my_path_2 = '/module2/'
def foo(a,b,my_path):
os.chdir('my_path')
os.mkdir('csv')
os.mkdir('json')
shutil.move(a+'.json','json')
shutil.move(b+'.csv','csv')
现在,如果我调用例如删除模块 3 的函数 B,只需将其删除,而不使用“my_path”的新目录来搜索模块 3(最后一次调用 foo)
【问题讨论】:
-
所以你想要一个只对调用它的函数范围有效的
chdir? -
最好只使用
os.mkdir(os.path.join(my_path, 'csv'))而不是不断更改工作目录。 -
我已经使用上下文管理器完成了这项工作,这可能是一个值得考虑的途径
-
似乎没有任何理由更改当前工作目录。没有它,您可以轻松完成此任务。只需寻找使用绝对路径而不是相对路径。
标签: python database module operating-system