python——基础教程——16

Python第十六节课


本节内容

Mon 06 12:00 Tue 07 12:00 Wed 08 12:00 Thu 09 12:00 Fri 10 12:00 Sat 11 12:00 Jan 12 12:00 Mon 13 文件操作 OS模块 平台信息获取 作业(文件) 涉及范围 基础教程——16
文件操作
# 打开文件
	# 我们使用内置的open()函数将一个文件打开
    # 语法格式为:open(filename[, mode])
    # filename表示文件的名称,mode表示文件的模式
    # 模式默认是只读模式(r)
    # 如果文件原来已经存在,那么不需要指定模式
    # 但是如果文件原来并不存在,那么需要指定模式w
# 模式有:
	# r rb r+ rb+
# 分别表示只读,二进制只读,可读可写,二进制可读可写
	# w wb w+ wb+
# 分别表示只写,二进制只写,可读可写,二进制可读可写
	# a ab a+ ab+
# 分别表示追加,二进制追加,可读可写,二进制可读可写
# 文件的属性
	# 在文件打开的前提下,我们可以查看文件的属性
    # file.name		文件的名称
    # file.mode		文件的权限
    # file.closed		文件是否关闭
# 关闭文件
	# file.close() 文件在执行之后,必须关闭,提高文件的安全性
# 写入文件
	# file.write(str) 文件在写入的时候,一定要在打开文件的时候提前给写入的权限,str就是写进去的内容。
# 读取文件
	# file.read([count])
    # 在读取文件的时候,我们可以指定读取的字符count
    # 如果,没有指定读取字符的时候,默认是全部读取
# 定位与移动
	# file.tell()	返回当前光标所在的位置
    # file.seek(count, from)	移动光标,count表示移动的位置
    # from表示移动的参照,0表示从头开始
    # 1表示从当前位置移动, 2表示从末尾移动
# with关键词
	# 语法格式:
    	with open('a.txt') as f:
            f.write() ....
    # 其中with语句是需要些f.close的,会自动关闭文件

练习:

​ 01、在没有创建文件a.txt的前提下,打开文件a.txt

​ 在文件中写入内容:xiao zhu peiqi 666

​ 查看文件是否关闭,如果未关闭,将文件关闭

​ 02、使用with语句再次完善上述问题

注:没有创建a.txt文件,代表本身存在。
def test():
    file = open('a.txt', 'w+')
    file.write('xiao zhu peiqi 666')
    if file.closed:
        print("已关闭!文件")
    else:
        print("文件未关闭!正在关闭")
        file.close()


# test()


def test1():
    with open('a.txt', 'w+') as f:
        a = 'xiao zhu peiqi 666'
        # f.tell()
        # f.seek(0, 1)
        f.write(a)
    if f.closed:
        print("已关闭!文件")
    else:
        print("文件未关闭!正在关闭")
        f.close()


# test1()

OS模块

创建目录

# 创建一级目录
	os.mkdir(name)
    # name 就是目录名称
# 创建多级目录
	os.makedirs(name1/name2/name3)
    # 可以创建多级目录

切换目录

os.chdir(name)	# 切换到指定的目录下

查看当前位置

os.getcwd()		# 返回当前所在的位置,绝对路径

删除目录和文件

# 删除文件
	os.remove(name)		# name 为文件的名称
# 删除目录
	os.removedirs(name1/name2/name3)	# 删除多级目录

练习:

​ 判断是不是在window下,如果在windows下则进行以下操作
​ 创建一个多级目录demo01/demo02/demo03
​ 在demo03下,创建一个文件a.txt
​ 在demo02下,创建一个文件b.txt
​ 将a.txt改名为one.txt
​ 并写入’this is one.txt file’
​ 在目录demo03下,创建一个新的目录,demo04
​ 打印出当前的位置,并且在demo04中创建文件c.txt
​ 将文件b.txt 删除掉

def test2():
    if os.name == 'nt':
        print("处于 windows 系统下---")
        path_name = os.getcwd()
        print(path_name)
        os.makedirs('demo01/demo02/demo03')
        os.chdir('E:\project-s\python开发课\day16\demo01\demo02')
        open('b.txt', 'w+')
        os.chdir('E:\project-s\python开发课\day16\demo01\demo02\demo03')
        open('a.txt', 'w+')
        os.rename('a.txt', 'one.txt')
        with open('one.txt', "w+") as f:
            f.write('this is one.txt file')
        os.chdir('E:\project-s\python开发课\day16\demo01\demo02\demo03')
        os.mkdir('demo04')
        os.chdir('demo04')
        os.getcwd()
        open('c.txt', 'w+')
        os.chdir('E:\project-s\python开发课\day16\demo01\demo02')
        os.remove('b.txt')
    else:
        print("处于 linux 系统下---")


test2()

平台相关信息的获取

操作系统的种类

os.name
	# nt 表示windows
    # posix 表示linux

操作系统的分隔符

os.seq()

路径

os.path.isfile(文件名称)	判断是否是文件
os.path.isdir(目录文件)		判断是否是目录
os.path.split("绝对路径")	将绝对路径进行分割
os.path.join("字符串")		将字符串链接成完整路径

作业:

在一个主目录下,创建多个文件夹,每个文件夹下创建10个txt文件。

本题是运维工程师面试题~

多个文件夹名称可自定义,面试为[‘apacher’, ‘html’, ‘android’, ‘app’, ‘ios’, ‘nginx’, ‘tomcat’, ‘python’]

# 参考方法
def file_tree(path):
    a = ['物联网', 'AI', 'matplotlib', 'anaconde', 'NLP', 'lua']
    for i in a:
        os.chdir(path)
        os.mkdir(i)
        z = 0
        os.chdir(path + f"//{i}")
        while z <= 10:
            z += 1
            now = datetime.datetime.now().date()
            result = now - datetime.timedelta(days=z)
            open(f'{result.strftime("%Y-%m-%d")}.txt', 'w+')


file_tree('E://sample')
发布了99 篇原创文章 · 获赞 34 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qq_42346414/article/details/86073038