标题

这是第一次在博客园里用markdown编辑器

import  os 
prinit.os.path(path)

os 模块用于和操作系统进行交互

import os
# os.mkdir()方法:创建一个目录
# os.mkdir(path,mode)
# os.mkdir(r"c:\tttt")
# os.mkdir(r"y:\tttt")  # FileNotFoundError: [WinError 3] 系统找不到指定的路径。: 'y:\\tttt'
try:
    os.mkdir(r"y:\tttt")
except FileNotFoundError:
    print("你指的盘符不存在!!!")

# os.mkdir(r"c:\yyyy\uuuuu")  # FileNotFoundError: [WinError 3] 系统找不到指定的路径。: 'c:\\yyyy\\uuuuu'
try:
    os.mkdir("c:\yyy",mode=1777)
except FileExistsError:
    print("文件已存在,无法创建该文件")
# 结论: os.mkdir(path,mode)方法,可以授受两个参数,第一个参数是目录,第二个参数是文件模式即权限,在windows上忽略,
# 不能实现级联方式创建目录,且 目录已存在,或者 盘符不存在,都会抛错

# os.rmdir(path)   通过目录路径,移除一个目录(该目录,必须是空目录)
try:
    os.rmdir(r"c:\yyy")
except FileNotFoundError:
    print("系统找不到指定文件")
except OSError:
    print("目录不是空的")

# print(os.getenv("path"))
# # os.fdopen()
# import io
# # io.open()
#
# fd = io.open(r"c:\yyy\dir.txt")
# print(fd.read())
# os.remove(r"c:\yyy\dir.txt")   # 移除指定文件
# os.makedirs(r"c:\yyy\ttt\eee")    # 级联方式创建目录
list1 = os.listdir(r"c:\yyy")   # 返回一个目录下 的文件列表
print(list1)  # ['tt.txt', 'ttt']  不能递归
fobj = os.fspath(r"c:\yyy")
print(fobj,type(fobj))
# fd = open(r"c:\yyy\ttt\ee.txt")
# try:
#     os.removedirs(r"c:\yyy")
# except OSError:
#     print("OSError: [WinError 145] 目录不是空的。: 'c:\\yyy'")


# os.walk()

"""Directory tree generator.

    For each directory in the directory tree rooted at top (including top
    itself, but excluding '.' and '..'), yields a 3-tuple

        dirpath, dirnames, filenames
"""
file_path = r"c:\yyy"   # 路径字符串,前后,不有有空格
# print(os.popen("tree "+ file_path + "/F").read())
# 卷 OS 的文件夹 PATH 列表
# 卷序列号为 76B6-90BF
# C:\YYY
# │  tt.txt
# │
# └─ttt
#     │  ee.txt
#     │
#     └─eee
#             hh.txt
generator = os.walk(file_path)  # 路径字符串,前后,不有有空格,否则迭代的时候,会报错
print(generator.__next__())       # ('c:\\yyy', ['ttt'], ['tt.txt'])
print(generator.__next__())       #  ('c:\\yyy\\ttt', ['eee'], ['ee.txt'])
print(generator.__next__())       #  ('c:\\yyy\\ttt\\eee', [], ['hh.txt'])
# print(generator.__next__())    # StopIteration

# os.removedirs()
# os.removedirs(r"c:\yyy")   # 级联删除目录,但每级目录要为空

filepath = r"C:\Users\jiayong\PycharmProjects\knight_schema\day23模块\os_module.py"
tu  = os.path.split(filepath)  //返回一个元组,第一个元素目录,第二个元素文件,实际原理,是从右向左,以路径分隔符,来
                                          //分隔路径字符串,最大分隔tu 1 个。
ret = filepath.rsplit("\\",1)  # 返回的是一个列表
print(tuple(ret))
print(tu)
filepath1 = "c:\yyy"
print(os.path.dirname(filepath1))  #  c:\yyy 返回上级目录
print(os.path.basename(filepath1))  # 返回最后一个路径分隔符右边的文件
print(os.path.isfile(filepath1))  # 是
print(os.path.isdir(filepath1))
print(os.path)
path1 = r"c:\win\xx"
path2 = r"c:\win\bb"
print(os.path.join(path1, path2))  #  c:\win\bb   当有多个绝对路径时,以最后个绝路径为准,前面的绝对路径参数忽略
print(os.path.join(path1, path2,"www\ccc\www"))  #  c:\win\bb\www\ccc\www   当有多个绝对路径时,以最后个绝路径为准,前面的绝对路径参数忽略

print(os.path.abspath(r"www\bbb\cc"))   # 如果路径是相对路径,以当前工作目录为基目录,进行目录串的拼接
print(os.path.abspath(r"d:\www\bbb\cc"))   # d:\www\bbb\cc
print(os.path.abspath(r"d:/www/bbb/cc"))   # d:\www\bbb\cc 规范化目录格式,将路径分隔符,转换为跟平台一致的


string = f"ii"
print(string)
print(dir(string))
print(help(str))
 print(help(str.lower))
内容补充 f字符串的作用,python3.6的新特性

greeting = "Hello"
name = "Chris"
message = f'{greeting},{name}欢迎来到!!'
print(message)
 更强的是,在此基础上,还可以加入额外的处理函数
msg = f'{greeting.swapcase()},{name.upper()}欢迎来焦点访谈!!!'
print(msg)

sys模块
import sys
print(sys.argv)  # 命令行参数,argv[0] 是脚本文件
print(sys.path)
 一个模块能否被导入,就看这个模块所在的目录在不在sys.path路径中
内置模块和第三方扩展模块都不需要我们处理sys.path就可以直接使用
自定义的模块的导入工作需要自己手动的修改sys.path
posted on 2018-09-05 19:10  yellwonfin  阅读(146)  评论(0)    收藏  举报