Python基础-day10

list

​ os模块

​ os.path模块

​ 文件操作

os模块 sys解析命令行参数(去学习)

import os
执行系统命令
os.system(命令)

res = os.name #nt 表示的是windows  posix 表示Linux UNIX Mac
print(res)

# res = os.uname() #操作系统的信息  windows报错
# print(res)

# 获取当前路径
res = os.curdir
print(res)

# 获取当前路径的绝对表示
res = os.getcwd()
print(res)

# 用来修改当所在的一个位置
res = os.chdir("D:\MyDownloads")
print(os.getcwd())

# 创建目录
# res = os.mkdir(r"E:\工作目录\基础阶段\day10\资料\test")
# print(res)

# 创建目录 如果父级目录不存在 那么也会被创建
# os.makedirs(r"E:\工作目录\基础阶段\day10\资料\test\a\b")

#  删除目录(只能删除空目录)
# os.rmdir(r"E:\工作目录\基础阶段\day10\资料\test\a\b")

#
# os.removedirs(r"E:\工作目录\基础阶段\day10\资料\test\a")

# 重命名目录
# os.rename(r"E:\工作目录\基础阶段\day10\资料\test\a\b", r"E:\工作目录\基础阶段\day10\资料\test\a\bb")
# 重命名文件(注意:要写绝对路径)
# os.rename(r"E:\工作目录\基础阶段\day10\资料\test\a\s.txt", r"E:\工作目录\基础阶段\day10\资料\test\a\s.py")

#创建文件(windows报错)
# os.mknod(r"index.txt")
# os.mknod("t.txt")
# 或者使用open
# open(r"E:\工作目录\基础阶段\day10\资料\test\a\s.txt", "w")

# 删除文件
# os.remove(r"E:\工作目录\基础阶段\day10\资料\test\a\s.txt")

# 获取某个目录下的文件或者目录的名字
res = os.listdir(r"E:\工作目录\基础阶段\day09\视频")
# print(res)

# 获取文件的信息
res = os.stat(r"E:\工作目录\基础阶段\day10\资料\test\a\s.py")
print(res)

# 获取环境变量
res = os.environ
print(res.get("path"))

os的path操作(比较重要)

from os import path as p

# 判断是不是文件
res = p.isfile(r"E:\工作目录\基础阶段\day10\资料\test\a")
print(res)

# 判断文件或目录是否存在
res = p.exists(r"E:\工作目录\基础阶段\day10\资料\test\a\666.txt")
print(res)

res = p.abspath("666.txt")
print(res)

# print(__file__)
# 当前程序的绝对路径
print(p.abspath(__file__))

# 获取目录末尾的文件名字
res = p.basename(r"E:\工作目录\基础阶段\day10\资料\test\a\666.txt")
print(res)

# 获取当前程序运行文件的文件名字
current_file_name = p.basename(__file__)
print(current_file_name)

# 获取目录
res = p.dirname(r"E:\工作目录\基础阶段\day10\资料\test\a\666.txt")
print(res)
# 获取当前程序运行文件的所属目录
print(p.dirname(__file__))

# 切分路径 得到是元组
res = p.split(r"E:\工作目录\基础阶段\day10\资料\test\a\666.txt")
print(res)
res = p.split(r"E:\工作目录\基础阶段\day10\资料\test\a")
print(res)

# 切分文件的后缀 如果给出的是目录 那么切分得到元组 第二项是空
res = p.splitext(r"E:\工作目录\基础阶段\day10\资料\test\a")
print(res)
print(p.splitext(r"E:\工作目录\基础阶段\day10\资料\test\a\666.txt"))

# 路径拼接
res = p.join(r"E:\工作目录\基础阶段\day10\资料", "999.txt")
print(res)
print(p.exists(res))
# 在运行文件的同级 创建一个index.py文件
# 先确定程序运行路径
my_dir = p.dirname(__file__)
# 拼接文件的绝对路径
file_path = p.join(my_dir, "index.py")
# 使用open
# open(file_path, "w")

# print(file_path.isdir)
# 判断一个是不是目录
res = p.isdir(file_path)
print(res)

# 获得文件大小
res = p.getsize(r"E:\工作目录\基础阶段\day10\资料\test\a\666.txt")
print(res)

文件操作(读 写)

输入输出(io流)

​ 参考物:程序(文件)

输入:将内容或数据 写入到文件的过程 input raw_input

输出:从文件或程序 读出内容 print()

文件读操作

我们要操作文件 必须要先打开文件

open函数(文件路径,打开模式)

打开模式

w 只写模式 如果文件不存在 就创建 如果存在 将会覆盖掉原来的所有内容
a 追加模式 如果文件不存在 就创建 如果存在 在其文件末尾继续填入新的内容
r (read)  只读模式 如果不存在就报错
x 写入模式 但是如果文件存在 那么保存
w+ r+ a+ x+ 读写模式
wb 写二进制数据
rb 读二进制数据
ab 追加二进制数据
    二进制方式保存写入数据例子:图片 音频文件 视频文件

read函数

如果参数不写 那么就把文件全都读取出来,如果是给了数字 那就读取规定个数的字符

注意:程序不能处理外部垃圾,也就意味着文件句柄 使用完毕以后需要手动关闭,python自动关闭文件不稳定

我们最好自己手动去关闭(close) 养成一个好习惯

文件句柄.closed 来判断是不是已经被关闭了

如果不想写close 可以使用with open() as 句柄这样的形式 示例如下

with open("lal.txt", "r") as f2,  open("lal.txt", "rb") as f4:
    print(f2.read())
    print(f4.read(2).decode("gbk"))

文件指针

​ read读取以后 文件指针向下移动 不会自己跑到文件的开始

​ tell 获取当前指针位置

​ seek 移动文件指针

​ 如果写的是seek(0) 回到文件的头

​ 如果写了两个参数(偏移量(默认是向右,输过是负数 就向左移动), 参考位置(0表文件头 1表当前位置,2文件的末尾))

readline(limit)函数

​ 默认是读取一行,当我们指定limit参数值后 他就读取该行的最多limit个内容

写操作

​ 先打开文件 打开模式就要写有关系了 w wb w+ a x

​ write(字符)

​ writelines(序列)

with open("heheda.txt", "w") as f1:
    f1.write("再带你们一周!!!")

# with open("append.txt", "a") as f2:
#     f2.write("需要发票!!!滴滴的也行\nuuuuu")
#
f3 = open("new.txt", "a+")
data = ["新诗\n", "你是我永远都不想修复的bug\n", "爱你就是个死循环\n"]
f3.writelines(data)
f3.close()

循环读取

​ 解决文件过大 不能一次读取的问题

import os
path = r"E:\工作目录\基础阶段\day10\资料\作业\youbian.txt"
f1 = open(path, "r", encoding="utf-8")
has_read = 0
# 获取文件大小
file_size = os.path.getsize(path)
READ_NUM = 100
while has_read < file_size:
    res = f1.read(READ_NUM)
    # print(res)
    if len(res) <= 0:
        pass
    else:
        print(res)
    has_read += READ_NUM

复制文件

​ 复制的是数据:将一个文件的内容读取出来然后 写入新的文件

解归档

把我们程序里面的数据结构 完整保存到我们文件里

以及读取

使用pickle包

import pickle

a = {"hehe": "88", "age":12}
# 归档
# my_file = open("my_pickle.txt", "wb")

# pickle.dump(a, my_file)

# 解档
my_file = open("my_pickle.txt", "rb")
res = pickle.load(my_file)
print(res, type(res))
my_file.close()
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,634评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,951评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,427评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,770评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,835评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,799评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,768评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,544评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,979评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,271评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,427评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,121评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,756评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,375评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,579评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,410评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,315评论 2 352

推荐阅读更多精彩内容

  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,300评论 0 9
  • 一、温故而知新 1. 内存不够怎么办 内存简单分配策略的问题地址空间不隔离内存使用效率低程序运行的地址不确定 关于...
    SeanCST阅读 7,798评论 0 27
  • 一、文件对象 文件对象是Python代码访问、操作磁盘上文件的主要接口。文件对象不仅可以用来访问普通的磁盘文件,而...
    常大鹏阅读 1,933评论 0 9
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,739评论 0 10
  • 文/清风远行 我想和你一起去——稻城亚丁 九月已是秋天,据说有一个地方很美 它叫稻城亚丁,第一次听说这个名字是在张...
    怪马m阅读 758评论 9 10