os py
2018-08-16 17:43:46 chen13017535518 阅读数 37
  • Django开发基础 

    Django是出名的py框架。Django大而全,它出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构、以及全功能的管理后台。总之,Django是开发网站的强大工具。 本期课程主要有Bootstrap框架,Django的工程创建,常用命令,配置文件,简单模版语言等。

    3122 人正在学习 去看看 李杰
os.path.exists(path)  #判断当前目录是否存在

os.name  #操作系统查询,window :'nt',Linux/Unix:'posix'

os.getcwd()  #脚本当前工作目录

os.chdir("d:\ShadowsocksR-4.1.1-win")  #切换目录

os.listdir() #目录下所有文件名

os.remove() #删除文件

os.system('cmd') #启动dos,括号内可以是dos命令

os.path.split()  #路径切割

os.path.isfile()  #目录?

os.path.isdir()   #文件?true or Flase

os.path.abspath(name)   #获得文件的绝对路径

os.path.normpath(path)   #规范path字符串形式,\  / 的问题

os.path.getsize(name)    #获取文件的大小,目录返回0L

os.path.splitext()    #分离文件名与扩展名(文件名和后缀)

os.path.basename(path)  #返回路径下文件名b/a/c.txt  == c.txt

os.path.dirname(path)   #返回文件路径

os.path.dirname(__file__)  #py文件路径

读取文件

import os
file_read = os.walk("E:\picture_5_9", topdown=False) #path,
for i,ii,iii in aaa:
    list_aaa = iii
print(list_aaa)   #为文件夹下的目录

 

 

2013-05-09 23:25:13 shijiebei2009 阅读数 3886
  • Django开发基础 

    Django是出名的py框架。Django大而全,它出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构、以及全功能的管理后台。总之,Django是开发网站的强大工具。 本期课程主要有Bootstrap框架,Django的工程创建,常用命令,配置文件,简单模版语言等。

    3122 人正在学习 去看看 李杰
    今天在做一项测试的时候,需要获取客户端操作系统和浏览器版本,于是我就使用
HttpServletRequest httpRequest = (HttpServletRequest) request;
String agent = httpRequest.getHeader("User-Agent");
来获取客户端返回的字符串,由于我测试的浏览器主要基于chrome和IE内核,所以就先以这两种浏览器作为测试来讲解,很奇怪,基本上大多数的浏览器返回的头信息都是以“Mozilla”开头,这主要是因为:
IE加入mozilla的字符串是为了在当时netscape占领大部分市场的情况下告诉写网页他们的浏览器和netscape是兼容的。
第一轮浏览器大战最后以Netscape被收购,Internet Explorer独霸浏览器市场告终。而此时Mozilla的历史正是由这里开始。浏览器之战失利以后,Netscape并没有消失,为了挽回市场, 1998年Netscape将浏览器的大部分代码开源,成立了一个组织,计划开发下一代的 Netscape浏览器,这个组织就是Mozilla.org,它的图标是一只恐龙。 

不久后,Netscape的源代码就差不多被全部抛弃, Mozilla社团开发出了在稳定性和功能上更出色的新一代浏览器。这个浏览器就是Mozilla Application Suite,简称Mozilla(Mozilla这个名字的来源是Mosaic和Godzilla(怪兽哥斯拉)两个词的结合,意为 "Mosaic终结者"。 

起初,Mozilla是Netscape的吉祥物,也是Netscape Navigator浏览器使用的内部开发代号。由于Netscape早期的影响力,直到今天,所有浏览器包括IE,向Web服务器报告自己的浏览器标识的 时候,都以 "Mozilla"开头,表明自己是Mozilla兼容的。

wikipedia 中关于 User-Agent的一段说明
 
The earliest example of this is Internet Explorer's use of a User-Agent string beginning "Mozilla/<version> (compatible; MSIE <version>...", in order to receive content intended for Netscape Navigator, its main rival at the time of its development. This was not a reference to the open-source Mozilla browser, which was developed much later, but to the original codename for Navigator, which was also the name of the Netscape company mascot. This format of User-Agent string has since been copied by other user agents, partly because Explorer, in turn, came to dominate.

如果有兴趣的可以到wikipedia上进行查看,链接为:http://anonymouse.org/cgi-bin/anon-www.cgi/http://en.wikipedia.org/wiki/Useragent

另外有一个网站为http://www.user-agents.org/index.shtml  可以查询部分Useragent的相关信息。
当然了不清楚以上故事也无所谓,并不影响我们的code工作,最优的解决方案应该是使用正则表达式来匹配各种版本的浏览器,但是为了简单起见,我就以一个不太完善的方案来进行讲解。
    通过测试,
chrome浏览器头信息如下:
User-Agent=Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.160 Safari/537.22
IE浏览器头信息如下:
User-Agent=Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0; .NET4.0C; .NET4.0E)
所以我们首先想到一个最笨的方法就是使用String.indexof(“”);方法来进行判断,如果含有要判断的字符串,那么函数返回其首次出现的索引值,否则函数返回“-1”
if (agent.indexOf("MSIE") != -1) {// 表示是IE浏览器
// IE浏览器获取操作系统和客户端浏览器
  //从请求头中读取User-Agent值
//构造StringTokenizer对象,使用“;”来分解User-Agent值
StringTokenizer st = new StringTokenizer(agent, ";");
st.nextToken();
//得到用户的浏览器名
browser = st.nextToken();
System.out.println("IE浏览器browser--->" + browser);
 //得到用户的操作系统名
os = st.nextToken();
System.out.println("IE浏览器os--->" + os);
} else if (agent.indexOf("Chrome") != -1) {// 表示是chrome浏览器
// chrome浏览器获取操作系统和客户端浏览器
StringTokenizer st = new StringTokenizer(agent, "()");
st.nextToken();
 //得到用户的操作系统名
os = st.nextToken();
System.out.println("chrome浏览器os----->" + os);
st.nextToken();
st.nextToken();
//得到用户的浏览器名
browser = st.nextToken();
System.out.println("chrome浏览器browser----->" + browser);
}
测试结果是可以正确获取操作系统和浏览器版本,比如我的windows7系统,获取的操作系统结果是Windows NT6.1
但是使用另外一种方法,System.out.println("System.getProperty(\"os.name\")="+System.getProperty("os.name"));获取的输出结果却是:System.getProperty("os.name")=Windows Vista,很是奇怪,个人猜测,这个可能与windows内核版本有关,在此不予深究。
OS包
2018-10-26 21:18:56 Falling_plum 阅读数 209
  • Django开发基础 

    Django是出名的py框架。Django大而全,它出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构、以及全功能的管理后台。总之,Django是开发网站的强大工具。 本期课程主要有Bootstrap框架,Django的工程创建,常用命令,配置文件,简单模版语言等。

    3122 人正在学习 去看看 李杰

OS包

os包:IOS macOS,operate system 操作系统。主要负责新建文件、改文件名、路径、操作电脑系统相关的功能。是一个内置包。
包名:
import os
from os import path, open
from os import *

os.path.exists 判断是否存在文件
print(os.path.exists('1.包引用.py'))
print(os.path.exists('text.txt'))
重命名

os.rename(‘旧文件名’,‘新文件名’)

os.rename('aaa.txt','bbb.txt')
删除文件
os.remove('bbb.txt')
创建文件夹 make directory
os.mkdir('aaa')
列出当前文件夹下的文件

相当于cmd中的dir命令、linux Is。

os.listdir()
切换当前文件夹 change

相当于cmd中的cd命令

os.chdir('aaa')
获取当前py所在的文件夹下 get work directory
print(os.getcwd())
(常用)拼接路径,获取脚本的绝对路径
print(os.path.join(os.getcwd(),'3.os.py'))
获取绝对路径 abs是absolute
print(os.path.abspath('./1.包引用.py'))
print(os.path.abspath(os.path.join(os.getcwd(),'3.os.py')))
判断路径是否存在
print(os.path.isdir('aaa'))

注:以上在linux系统上操作可能需要权限。
可以在cmd中尝试dir、cd命令

相对路径和绝对路径

绝对路径:从盘符或项目根目录写出每一层目录层级到文件。如:D:\PYCHARM\L8包\3.os.py
绝对路径:优点是准确,缺点写起来麻烦。

相对路径:一个(英文)点表示当前目录 两个(英文)点表示父目录
如:相对3.os.py而言(相对路径)

3.os.py    →    ./3.os.py 

如:相对L8包/3.os.py而言(相对路径)

L8包/3.os.py   →   ../L8包/3.os.py

相对路径的优点:是写起来比较短,整个文件夹路径变化时里面的文件路径不用修改。缺点是容易写错、没有绝对路径准确。

表示目录层级斜杠:windows上\反斜杠,macOS linux用的是/正斜杠。

python解释器会把字符串中的反斜杠认为是转义字符,导致出错。解决方案:

  1. 反斜杠变成正斜杠
'D:/PycharmProjects/tutorial/L8包/3os.py'
  1. 使用转义字符输出反斜杠
'D:\\PycharmProjects\\tutorial\\L8包\\3os.py '

输出:'D:\PycharmProjects\tutorial\L8包\3os.py ’
使用不同路径读取文件:

1.相对路径

with open('chinese_utf8.txt', 'r') as file:
    content = file.read()
    print(content)

chinese_utf8.txt 文件名
r :模式,读取文件

2.绝对路径

with open('E:\\PYCHARM\\L8包\\chinese_utf8.txt', 'r', encoding='utf-8') as f:
    content = f.read()
    print(content)

E:\\PYCHARM\\L8包\\chinese_utf8.txt :文件名(绝对路径)
2018-08-30 09:31:38 u012424313 阅读数 38916
  • Django开发基础 

    Django是出名的py框架。Django大而全,它出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构、以及全功能的管理后台。总之,Django是开发网站的强大工具。 本期课程主要有Bootstrap框架,Django的工程创建,常用命令,配置文件,简单模版语言等。

    3122 人正在学习 去看看 李杰

os即operating system(操作系统),Python 的 os 模块封装了常见的文件和目录操作。

os.path模块主要用于文件的属性获取,exists是“存在”的意思,所以顾名思义,os.path.exists()就是判断括号里的文件是否存在的意思,括号内的可以是文件路径

举个栗子:

user.py为存在于当前目录的一个文件

输入代码: 

import os
path = os.path.exists('user.py')
print(path)

输出结果: 

True

Process finished with exit code 0

如果不存在,返回的则是FALSE。

2017-08-09 16:08:22 richard1ybb 阅读数 291
  • Django开发基础 

    Django是出名的py框架。Django大而全,它出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构、以及全功能的管理后台。总之,Django是开发网站的强大工具。 本期课程主要有Bootstrap框架,Django的工程创建,常用命令,配置文件,简单模版语言等。

    3122 人正在学习 去看看 李杰

Python判断当前操作系统类型以及os/sys/platform模块简介,pythonplatform


判断操作系统类型

#coding=utf-8


import platform

def TestPlatform( ):
    print ("----------Operation System--------------------------")
    #  获取Python版本
    print platform.python_version()

    #   获取操作系统可执行程序的结构,,(’32bit’, ‘WindowsPE’)
    print platform.architecture()

    #   计算机的网络名称,’acer-PC’
    print platform.node()

    #获取操作系统名称及版本号,’Windows-7-6.1.7601-SP1′
    print platform.platform()  

    #计算机处理器信息,’Intel64 Family 6 Model 42 Stepping 7, GenuineIntel’
    print platform.processor()

    # 获取操作系统中Python的构建日期
    print platform.python_build()

    #  获取系统中python解释器的信息
    print platform.python_compiler()

    if platform.python_branch()=="":
        print platform.python_implementation()
        print platform.python_revision()
    print platform.release()   #版本号
    print platform.system()    #系统(windows)

    #print platform.system_alias()
    #  获取操作系统的版本
    print platform.version()

    #  包含上面所有的信息汇总
    print platform.uname()

def UsePlatform( ):
    sysstr = platform.system()
    if(sysstr =="Windows"):
        print ("Call Windows tasks")
    elif(sysstr == "Linux"):
        print ("Call Linux tasks")
    else:
        print ("Other System tasks")




if __name__ == "__main__" :

    TestPlatform( )

    UsePlatform( )

Python与操作系统有关的模块


Os模块


Python的标准库中的os模块主要涉及普遍的操作系统功能。可以在Linux和Windows下运行,与平台无关。 
os.sep 可以取代操作系统特定的路径分割符。 
os.name字符串指示你正在使用的平台。比如对于Windows,它是’nt’,而对于Linux/Unix用户,它是’posix’。 
os.getcwd()函数得到当前工作目录,即当前Python脚本工作的目录路径。 
os.getenv()和os.putenv()函数分别用来读取和设置环境变量。 
os.listdir()返回指定目录下的所有文件和目录名。 
os.remove()函数用来删除一个文件。 
os.system()函数用来运行shell命令。 
os.linesep字符串给出当前平台使用的行终止符。例如,Windows使用’\r\n’,Linux使用’\n’而Mac使用’\r’。 
os.path.split()函数返回一个路径的目录名和文件名。 
os.path.isfile()和os.path.isdir()函数分别检验给出的路径是一个文件还是目录。 
os.path.existe()函数用来检验给出的路径是否真地存在 
os和os.path模块 
os.listdir(dirname):列出dirname下的目录和文件 
os.getcwd():获得当前工作目录 
os.curdir:返回但前目录(’.’) 
os.chdir(dirname):改变工作目录到dirname 
os.path.isdir(name):判断name是不是一个目录,name不是目录就返回false 
os.path.isfile(name):判断name是不是一个文件,不存在name也返回false 
os.path.exists(name):判断是否存在文件或目录name 
os.path.getsize(name):获得文件大小,如果name是目录返回0L 
os.path.abspath(name):获得绝对路径 
os.path.normpath(path):规范path字符串形式 
os.path.split(name):分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在) 
os.path.splitext():分离文件名与扩展名 
os.path.join(path,name):连接目录与文件名或目录 
os.path.basename(path):返回文件名 
os.path.dirname(path):返回文件路径

Sys模块


sys.argv: 实现从程序外部向程序传递参数。 
sys.exit([arg]): 程序中间的退出,arg=0为正常退出。 
sys.getdefaultencoding(): 获取系统当前编码,一般默认为ascii。 
sys.setdefaultencoding(): 设置系统默认编码,执行dir(sys)时不会看到这个方法,在解释器中执行不通过,可以先执行reload(sys),在执行 setdefaultencoding(‘utf8’),此时将系统默认编码设置为utf8。(见设置系统默认编码 ) 
sys.getfilesystemencoding(): 获取文件系统使用编码方式,Windows下返回’mbcs’,mac下返回’utf-8’. 
sys.path: 获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到。 
sys.platform: 获取当前系统平台。 
sys.stdin,sys.stdout,sys.stderr stdin , stdout , 以及stderr 变量包含与标准I/O 流对应的流对象. 如果需要更好地控制输出,而print 不能满足你的要求, 它们就是你所需要的. 你也可以替换它们, 这时候你就可以重定向输出和输入到其它设备( device ), 或者以非标准的方式处理它们

0725_模块和包

阅读数 43

os包

阅读数 78

没有更多推荐了,返回首页