Guest User

Untitled

a guest
Nov 17th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.10 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # Time : 2018/11/17 13:54
  4. # Author : Jenson
  5. import os
  6. mydir = os.getcwd() #以字符串格式获取当前工作目录
  7. #如果我要在这个工作目录下写一个程序,产生、删除,copy一个文件,意思是以我目前的工作目录为基础
  8. print(mydir)
  9. os.chdir('C:/new pycharm project') #更改当前工作路径到'C:/new pycharm project'
  10. #代码中关于文件路径,一律'\'改为'/',只是为了区别于格式转换符
  11. print(os.getcwd()) #更改路径之后,打印检查一下更改之后的工作路径
  12. os.chdir('C:/Users/琳克队长/PycharmProjects/Advanced grammer') #现在又更改回到原来的工作路径
  13. print(os.getcwd())
  14. ld = os.listdir() #listdir()获取一个目录中所有子目录和文件名,返回一个list,子目录和文件名在一个该list中出现
  15. print(ld)
  16. '''rst = os.makedirs("Jenson03") #在当前工作目录下递归创建文件夹,这是在相对路径下创建文件夹
  17. print(rst)
  18. print("*"*150)
  19. rst1 = os.system("ls") #运行系统shell命令,运行结果是打开一个shell或者终端界面
  20. #ls这个shell命令代表列出当前文件和文件夹的命令
  21. print(rst1)
  22. rst2 = os.system("I'm Jenson.jenson") #在当前目录下创建一个I'm Jenson.jenson的文件(注意创建的是文件)
  23. print(rst2)'''
  24. rst3 = os.system("PATH") #获取指定的系统环境变量值,返回的是指定的环境变量名对应的值
  25. print(rst3)
  26. '''
  27. os.curdir:current dir 当前目录
  28. os.pardir:parent dir 父目录
  29. os.sep 当前系统的路径分隔符 windows:"\" unix,linux,macos:"/"
  30. os.linesep 当前系统的换行符 windows:"\r\n" unix,linux,macos:"\n"
  31. 写代码遇到写分隔符、换行符时不要手动写,手动写会导致程序不具有一致性,应该用到os.path模块来写
  32. os.name 当前系统名称 windows:"nt" unix,linux,mac:"posix"
  33. '''
  34.  
  35.  
  36. #os.path模块
  37. import os.path as op
  38. absp = op.abspath(".")
  39. print(absp) #abspath()表示将路径转换为绝对路径
  40. #格式:os.path.abspath('具体路劲')
  41. #返回值:路径的绝对路径形式
  42. #在Linux中 . 点号,代表当前目录 .. 双点代表父目录
  43. bn = op.basename("C:/Users/琳克队长/PycharmProjects/Advanced grammer")
  44. bnn = op.basename("C:/Users/琳克队长/PycharmProjects/Advanced grammer/测试03/Jenson01.docx")
  45. print(bn) #basename()表示获取路径中最后一个分隔符("\")之后的部分
  46. print(bnn) #格式 os.path.basename(路径)
  47. #返回值:最后一个文件夹的名字(或者文件的名字)对应的字符串
  48. print("*"*100)
  49. bn1 = "C:/Users/琳克队长/PycharmProjects/Advanced grammer/测试01"
  50. fn = "Jenson01.docx"
  51. bn0 = op.join(bn1, fn)
  52. print(bn0) #地址拼接,将多个路径合并为一个路径,不能用手写,得用join来拼接,因为手写的不具有移植性
  53. #格式:os.path.join(路径1,路径2,路径3...)
  54. #返回值:组合之后的新路径字符串,实际路径中并未发生变化
  55. t= op.split("C:/Users/琳克队长/PycharmProjects/Advanced grammer/测试03/Jenson01.docx")
  56. print(t) #将split()将路径切割为文件夹部分和当前文件部分
  57. #os.path.split(路径)
  58. #返回值:路径和文件名组成的元组
  59. d,p = op.split("C:/Users/琳克队长/PycharmProjects/Advanced grammer/测试03/Jenson01.docx")
  60. print(d,p) #老规矩,遇到元组可以用多个值去接收
  61. result1 = op.isdir("C:/Users/琳克队长/PycharmProjects/Advanced grammer/测试03")
  62. result2 = op.isdir("C:/Users/琳克队长/PycharmProjects/Advanced grammer/测试03/Jenson01.docx")
  63. print(result1, result2) #检测是否为路径,第一个为目录,返回Ture;第二个为文件,返回Fault
  64. #格式:os.path.isdir(路径)
  65. #返回值:is类型,一律返回布尔值
  66. a = op.exists("C:/Users/琳克队长/PycharmProjects/Advanced grammer/测试03")
  67. b = op.exists("C:/Users/琳克队长/PycharmProjects/Advanced grammer/测试03/Jenson01.docx")
  68. print(a, b) #判断目录或者文件是否存在
  69. #格式:os.path.exists(路径)
  70. #返回值:布尔值
  71.  
  72.  
  73. #os.shutil模块
  74. import shutil
  75. cp1 = shutil.copy("C:/Users/琳克队长/PycharmProjects/Advanced grammer/测试05/Jenson.docx",
  76. "C:/Users/琳克队长/PycharmProjects/Advanced grammer/测试06/Annie.docx")
  77. print(cp1) #用的较多 copy()表示复制文件(将原路径的内容覆盖至新的路径)
  78. #格式:shutil.copy(来源路径,目标路径)
  79. #返回值:返回目标路径
  80. #拷贝的同时,可以给目标路径的文件重新命名
  81. #后一个文件名不加后缀.docx,则文件也能复制过去,但是从递归文件夹进去的时候,文件没有icon图标
  82. cp2 =shutil.copyfile("C:/Users/琳克队长/PycharmProjects/Advanced grammer/测试07/Jenson.docx",
  83. "C:/Users/琳克队长/PycharmProjects/Advanced grammer/测试08/Annie.docx")
  84. print(cp2) #较少用 copyfile()将一个文件中的内容复制到另外一个文件当中(将源路径的内容复制到新路径)
  85. #格式:shutil.copy(源路径,目标路径)
  86. #无返回值
  87. '''cp3 = shutil.move("C:/Users/琳克队长/PycharmProjects/Advanced grammer/测试09/Jenson.docx",
  88. "C:/Users/琳克队长/PycharmProjects/Advanced grammer/测试10")
  89. print(cp3)''' #移动文件/文件夹到新的路径
  90. #格式:shutil move(源路径,目标路径)
  91. #返回值:目标路径
  92. cp4 = shutil.make_archive("C:/Users\琳克队长\测试-source\Saved Pictures", "zip", "C:/Users\琳克队长\测试-source")
  93. print(cp4) #注意前后路径,不能超过User的范围,不然显示权限类型的报错
  94. #make_archieve()表示归档操作
  95. #格式:shutil.make_archieve(归档之后的目录和文件名,后缀,需要归档的文件夹)
  96. #返回归档之后的地址
  97. #unpack_achive()解包操作
  98. #shutil.unpack_achive("归档文件地址","解压之后的地址")
  99. #返回解压之后的地址
Add Comment
Please, Sign In to add comment