0105学习记录

01_file文件操作_操作系统底层关系_写入文件

0105学习记录_第1张图片

0105学习记录_第2张图片
0105学习记录_第3张图片
0105学习记录_第4张图片

0105学习记录_第5张图片
0105学习记录_第6张图片

解释器运行自操作系统,操作系统有权限对硬盘做操作 程序–解释器–操作系统–处理硬盘 操作完成后,关闭解释器及操作系统相关的资源 以节省资源

02_编码知识_中文乱码问题解决

0105学习记录_第7张图片
0105学习记录_第8张图片

#测试写入中文
# -*- coding:utf-8 -*-
f=open(r"b.txt","w",encoding="utf-8")  #在这里声明用utf-8  则文档能正常显示中文
f.write("尚学堂\n百战程序员\n")
f.close()

03_关闭流要点1_try异常管理

在这里插入图片描述

#!usr/bin/env python
# -*- coding:utf-8 -*-
f=open(r"b.txt","w",encoding="utf-8")
s=["gaoyi\n","gaoer\n","gaosan\n"]
f.writelines(s)
f.close()

0105学习记录_第9张图片
close 关闭打开的操作系统资源 结合异常机制,当编码程序中有异常时,仍旧能关闭文件

#!usr/bin/env python
# -*- coding:utf-8 -*-
try:
    f=open(r"my01.txt","a")
    str=["gaoyi\n","gaoer\n","gaosan\n"]
    f.write(str)
except BaseException as e:
    print(e)
finally:#不管有没有异常,这下边的必须执行 放个close语句来关闭文件
    f.close()

04_关闭流要点2_with上下文管理_现场还原

完毕后 自动还原

#!usr/bin/env python
# -*- coding:utf-8 -*-
with open(r"d.txt","a") as f:#执行完with下边的对象,自动还原到with 前边的东西 
#加上 r 就是保持字符串原始值的含义,即不对其中的符号进行转义。 
    f.write("i love y")
    #转义字符会让某一个符号的含义改变。他可以赋予一些普通的字符特殊的含义,也可以让一些有特殊含义的字符回归普通。

05_文本文件的读取

0105学习记录_第10张图片

#测试文件读取
# -*- coding:utf-8 -*-
with open(r"e.txt","r",encoding="utf-8") as f:
    str=f.read(3)
    print(str)

0105学习记录_第11张图片

with open(r"e.txt","r",encoding="utf-8")  #这里这不是说readlin()是返回一行吗 怎么没用上readline()
    for a in f: #使用迭代器(每次返回一行)  迭代器的功能有点忘了
        print(a,end="")

06_enumerate()函数和推导式生成列表_操作每行增加行号

#!usr/bin/env python
# -*- coding:utf-8 -*-
a=["wo love u","尚学堂","百战程序员"]
b=enumerate(a)#把每个元素都加上索引号,并用元组包含起来
print(a)
print(list(b))

#打印结果 ['wo love u', '尚学堂', '百战程序员']
#打印结果 [(0, 'wo love u'), (1, '尚学堂'), (2, '百战程序员')]
a=["wo love u\n","尚学堂\n","百战程序员\n"]
b=enumerate(a)#把每个元素都加上索引号,并用元组包含起来
print(a)
print(list(b))
#推导式生成
with open("e.txt","r",encoding="utf-8") as f:  #这里原本是有一个e.txt的内容,见下边的截图
    lines=f.readlines()
    lines=[temp.rstrip()+" #" +str(index)+"\n" for index,temp in enumerate(lines)]
 #rstrip()去空白符
with open("e.txt","w",encoding="utf-8") as f:
    f.writelines(lines)

0105学习记录_第12张图片

任务141:07_二进制文件的读写_图片文件拷贝

0105学习记录_第13张图片

with open("aa.gif","rb") as f:   #拷贝aa的gif文件
    with open("aa_copy.gif","wb") as w:
        for line in f.readlines():
            w.write(line)

print("图片拷贝完成。。。。。")

08_文件对象常用方法和属性总结_seek()任意位置操作

0105学习记录_第14张图片
0105学习记录_第15张图片

with open("e.txt","r",encoding="utf-8") as f:
    print("wenjianmingshi:{0}".format(f.name))
    print(f.tell())
    print("读取的内容:{0}".format(f.readline()))
    print(f.tell())
    f.seek(3)
    print("读取的内容:{0}".format(f.readline()))

09_使用pickle实现序列化和反序列化_神经元记忆移植

0105学习记录_第16张图片
相当于记忆的移植。
在这里插入图片描述

import pickle

a1="gaoqi"
a2="234"
a3=[10,20,30,40]

with open("data.dat","wb") as f:
    pickle.dump(a1,f)
    pickle.dump(a2,f)
    pickle.dump(a3,f)

with open("data.dat","rb") as f:
    b1=pickle.load(f)
    b2=pickle.load(f)
    b3=pickle.load(f)
    print(b1);print(b2);print(b3)

    print(id(a1));print(id(b1))  #测试这两个对象,是否是相同的地址

10_CSV文件的读取_写入

0105学习记录_第17张图片
0105学习记录_第18张图片

#csv文件读取和写入
import csv

with open("dd.csv","r") as f:
    a_csv=csv.reader(f)
    #print(list(a_csv))
    for row in a_csv:#对于对象中的元素进行遍历,包括列表元素
        print(row)

with open("ee.csv","w") as f:
    b_csv=csv.writer(f)
    b_csv.writerow(["ID","姓名","年龄"])
    b_csv.writerow(["1001", "高一", "18"])

    c=[["1002","xixi","3"],["1003","xxxx","4"]]
    b_csv.writerows(c)#加s表示一行一行写入

11_os模块_调用操作系统可执行文件_控制台乱码问题

控制台乱码 file—setting—接着就直接修改所用的代码
在这里插入图片描述

0105学习记录_第19张图片

import os

#os.system("notepad.exe") #调用记事本程序
#os.system("regedit")#调用注册表
#os.system("ping www.baidu.com")
#os.system("cmd") #调用cmd面板
os.startfile(r"C:\KMPlayer\KMPlayer.exe")#直接调用可执行文件

12_os模块_获得文件信息_创建文件夹_递归创建

0105学习记录_第20张图片
0105学习记录_第21张图片

#coding=utf-8
#os 文件   目录的操作
import os

######获取文件和文件夹相关的信息#######
print(os.name) #windows->nt  lunix和unix->posix
print(os.sep) #windows->|  lunix和unix->/
print(repr(os.linesep)) #windows->\r\n     lunix和unix->posix

print(os.stat("my02.py")) #显示文件信息

##工作目录##
#print(os.getcwd()) #获取当前工作目录
#os.chdir("d://")  #改变工作目录为D盘
#os.mkdir("书籍")
##创建目录、创建多级目录、删除##
#os.mkdir("书籍")
#os.rmdir("书籍")  #相对路径都是相对于当前的工作目录
#os.makedirs("电影/港台/轰走") #建立和删除多级目录,非空目录无法删除
#os.removedirs("电影/港台/轰走")
#os.makedirs("../音乐/香港/ldh")  #../指的是上一级目录
#os.rename("电影","movie") #重命名原文件
dirs=os.listdir("movie") #返回该文件下的子文件
print(dirs) 

13_os.path模块_常用方法

0105学习记录_第22张图片

#coding=utf-8
#测试os.path

import os
import os.path #from os import path
##判断:绝对路径、是否目录、是否文件、文件是否存在
print(os.path.isabs("d:/a.txt"))   #true
print(os.path.isdir("d:/a.txt"))   #f
print(os.path.isfile("d:/a.txt"))  #t
print(os.path.exists("d:/a.txt"))  #f
##获取文件基本信息
print(os.path.getsize("b.txt"))  #返回文件大小
print(os.path.abspath("b.txt"))  #返回绝对路径
print(os.path.dirname("d:/a.txt")) #返回目录的路径

print(os.path.getctime("b.txt")) # 创建时间 1970年零时零刻是绝零点
print(os.path.getatime("b.txt"))# 文件访问时间
print(os.path.getmtime("b.txt")) #最后修改时间

## 对路径的操作
path=os.path.abspath("b.txt")  #拿到绝对路径
print(os.path.split(path))  # split 按照目录 文件进行切割
print(os.path.splitext(path)) #返回文件扩展名,按点进行切割

print(os.path.join("aa","bb","cc"))  #路径的连接 连接多个path
#coding=utf-8
#列出工作目录下所有的py文件,并输出

import os

path=os.getcwd()

file_list=os.listdir(path)
for filename in file_list:
    if filename.endswith("py"):
        print(filename)

print("###########")
file_list2=[filename for filename in os.listdir(path) if filename.endswith("py")]
for f in file_list2:
    print(f,end="\t")  #转义符号

14_os模块_使用walk遍历

0105学习记录_第23张图片

#coding=utf-8
#os.walk() 遍历子目录和子文件

import os

all_files=[]
path=os.getcwd()
list_files=os.walk(path)

for dirpath,dirnames,filenames in list_files:
    for dir in dirnames:
        all_files.append(os.path.join(dirpath,dir))
        #print(os.path.join(dirpath,dir))
    for file in filenames:
        all_files.append(os.path.join(dirpath,file))
        #print(os.path.join(dirpath,file))

#打印所有的子目录和子文件
for file in all_files:
    print(file)

15_shutil模块_文件和目录拷贝

0105学习记录_第24张图片

#coding=utf-8
#测试shutil模块的用法:拷贝,压缩

import shutil

#shutil.copyfile("1.txt","1_copy.txt")  #简单的文件拷贝

#shutil.copytree("movie/港台","电影") #电影目录不存在时才能正常拷贝

shutil.copytree("movie/港台","电影",ignore=shutil.ignore_patterns("*.txt")) #拷贝时可忽略一些不需要的文件

16_shutil和zipfile模块_压缩和解压缩

import shutil
import zipfile
#压缩、解压缩
#shutil.make_archive("电影/gg","zip","movie/港台")

#z1=zipfile.ZipFile("d:/a.zip","w")  #在d盘创建一个名为a的zip文件
#z1.write("1.txt")    #写那些文件需要压缩
#z1.write("1_copy.txt")
#z1.close()

z2=zipfile.ZipFile("d:/a.zip","r") # r默认值为'r',表示读已经存在的zip文件,也可以为'w'或'a','w'表示新建一个zip文档或覆盖一个已经存在的zip文档,'a'表示将数据附加到一个现存的zip文档中
z2.extractall("电影")  #解压缩到当前的电影目录下
z2.close()

17_递归算法原理_阶乘计算

0105学习记录_第25张图片

#coding=utf-8
#递归计算n阶乘

def factorial(n):
    if n==1:
        return n
    else:
        return n*factorial(n-1)

print(factorial(5))

0105学习记录_第26张图片

18_递归算法原理_目录树结构展示

#coding=utf-8
#递归打印所有的目录和文件

import os

allfiles=[]
def getAllFiles(path,level):  #level 的作用是做标记,方便排列出来是几级目录
    childFiles=os.listdir(path) #返回path路径下的目录和文件
    for file in childFiles:
        filepath = os.path.join(path,file)  # 把副目录和文件名连接
        if os.path.isdir(filepath):
            getAllFiles(filepath,level+1) #如果是深目录,继续往里边再找
        allfiles.append("\t"*level+filepath)

getAllFiles("test_os",0)
for f in reversed(allfiles):
    print(f)

你可能感兴趣的:(学习)