学习python os commands socket模块 导包错误解决办法
import os #os模块主要是和路径有关系
#自己在本地调试的时候,代码能跑通,但是到服务器上代码跑不通,一般都是导包的原因
解决办法:把项目的根目录写到 sys.path 中。但是项目的根目录本地和服务器又不一致。所以可以使用os.path.dirname()一步一步往上推出项目的根目录
--project
--a
--e 此时e想调用b目录先的c 就在e.py文件写入 path = os.path.dirname(os.path.dirname('.')) ==>project的绝对路径了不用管本地和服务器的差别了 然后将project 添加到sys.path.append(path)
直接使用 from b.c import name
--b
--c
os.path.dirname('.') 获取当前文件的路径
print(os.getcwd()) #获取当前路径, 导包也是从这个路径下面才能找到 # os.chdir('./..') #返回上一级路径,再获取路径看看 # print(os.getcwd()) # os.curdir('.') # os.makedirs(r'a/b/c') #创建多层文件夹 # os.mkdir(r'g') #创建单一文件夹 # os.removedirs(r'g/b/n') #删除多层, # os.rmdir('g') #删除一个文件夹 os.system('vis a') #直接运行 命令,并且打印出来.命令失败了 不如commands 他是基于os的
os.system('cd .. && ls ') #多个命令一起执行需要 && 不能拆开写这个
commands模块是python的内置模块,共有三个函数,使用help(commands)可以查到
commands.getstatusoutput(cmd)返回一个元组(status,output)
status代表的shell命令的返回状态,如果成功的话是0;
output是shell的返回的结果
import commands status, output = commands.getstatusoutput("ls") print status # 0 print output