Python学习--第五天--文件操作、os模块和时间模块

一、文件操作(只基于Windows操作系统
1、 打开文件
变量名 = open(文件名称, 操作模式)
注意1:文件打开必须要关闭,必须要关闭,必须要关闭,变量名.close()
注意2:操作模式不是必备参数,也就是可以不写,默认执行读模式

# 因为Python的转义符是“\”,所以冲突了,需要将路径里面的“\”进行转义,就是双斜杠
a = open('C:\\XXX\\XXXX\\Desktop\\0412日志.txt')
a.close()
# 如果文件就在包里,那么就不需要写路径,直接填写文件名就行
b = open('0413日志.txt')
b.close()

2、 确定操作模式:读、写(r表示只读;r+表示读写;w表示只写;w+表示写读)
不赋操作模式就不能调用写write()函数
变量名.read()
变量名.write()

# 使用w或者w+打开的文件不存在就会新建一个,这里的w写是复制写,就是将原文件内容写入临时文件,程序完后覆盖原文件
a = open('0413.txt')  # 不填操作模式,默认为r,只读
# a = open('0413.txt', 'r+')
# a = open('0413.txt', 'w')
# a = open('0413.txt', 'w+')
a.close()

3、操作文件常用的函数

# 4.1、读文件read()
a = open('0413日志.txt')
print(a.read())
print(a.mode)  # 返回被打开文件的访问模式
print(a.name)  # 返回文件的名称
print(a.encoding)  # 返回文件编码
print(a.closed)  # 检查文件是否关闭,返回true表示如果文件已被关闭,否则返回false
# 查看next(file)效果,是否真的换行
next(a)  # 返回下一行,并将文件操作标记位移到下一行。如果需要换行则要自己加入每行的换行符
print(file.read())
a.close()

# 4.2、写文件write()
a = open('0413日志.txt', 'r+')
print(a.tell())  # 查看光标所在位置
a.seek(0, 0)  # 将光标移动到指定坐标,两个零表示回到开头(第一位表示将要移动多少位,第二位表示从哪个位置开始移)
print(a.read())  # 读取文件
a.write('很过分')  # 对文件写入内容,写入点依光标所在位置定
a.flush()  # 程序写入后会自动保存,怕写入没保存,可以使用flush()刷新
print(a.tell())
print(a.read())
print(a.readline())  # 读一行,不填size
print(a.readline(5))  # 如果readline(size)定义了size,那么就会返回第一行的0-size部分
print(a.readlines())  # 读取文件的每一行作为list的一个元素,返回一个list列表
print(a.readlines(2))  # 也可以填入size,但是会读完size所在部分,打印完整内容作为list列表元素
a.seek(0, 0)
b = ['\n王国维写的:\n', '\n唐代\n\n']  # 注意,从前面写入会覆盖原内容,所以最好写末尾空白处

a.writelines(b)  # (都是依靠光标,注意光标位置)一次写入多行内容,要换行需要在内容后面加\n
a.seek(0, 0)
print(a.read())
a.close()  # 记得每次打开文件都要关闭;记得每次打开文件都要关闭;记得每次打开文件都要关闭;

二、os模块
1、os模块可以系统层操作文件,需要导入内置模块os

import os

2、os模块常用的函数(下面的各类函数使用都一样,文件不在包里面,那么就需要加文件的绝对路径

# os.rename('旧文件名','新文件名'),修改文件名如果文件在包里面,那么不需要路径就可以修改文件名
os.rename('0413日志', '0413')
# 如果文件不在包里面,os.rename()那么修改文件名就需要绝对路径
os.rename('C:\\XXX\\XXX\\Desktop\\0412日志.txt','C:\\XXX\\XXXX\\Desktop\\0412日.txt')

# 删除文件
os.remove('0413日志')

# mkdir()方法:可以使用os模块的mkdir()方法在当前目录下创建新的目录
# 语法:os.mkdir(文件夹名称)
os.mkdir('C:\\Users\\you\\Desktop\\test_dir')

# chdir()方法:可以用chdir()方法来改变当前的目录。
# 语法:
print(os.getcwd())  # 先用os.getcwd()获取文件目录
os.chdir('F:\\PycharmProjects\\pythonWeb2\\4月12号\\test_dir')  # 更换目录
print(os.getcwd())  # 检查是否变更成功

# rmdir()方法:删除目录,目录名称以参数传递。在删除这个目录之前,它的所有内容应该先被清除。
# 语法:
os.rmdir('F:\\PycharmProjects\\pythonWeb2\\4月12号\\test_dir')

# makedirs()方法:创建多级目录:
# 语法:
os.makedirs('c:\\python\\test'# getcwd()方法:得到当前工作目录
# 语法:
os.getcwd()

# isdir()/isfile()方法:检验给出的路径是否是一个目录/文件
os.path.isdir('E:\\book\\temp')

# 查看对象的内存,需要导入内置模块sys
import sys
print(sys.getsizeof('hello world'))

三、时间模块, 日期时间操作time、datetime
1、需要导入time、datetime模块

import time
import datetime

2、时间模块常用的函数方法:

import time
import datetime

time.sleep(4)  # 用的多的time.sleep(秒),睡眠多少秒

t = (2018, 6, 24, 16, 56, 45, 0, 0, 0)
# 获取当前时间戳
print(time.time())
# 给定时间的时间戳
print(time.mktime(t))
# 转换时间戳为元组time.localtime(时间戳)
print(time.localtime(time.time()))
# 格式化显示(即字符串、时间元组相互转换)
print(time.strftime('%Y-%m-%d %H:%M:%p', t))
# 不加时间元组显示当前时间
time.strptime(str,'%Y-%m-%d %X')
# 格式化显示(即字符串、时间元组相互转换)
t = time.localtime()
print(t)
print(time.strftime('%Y-%m-%d %H:%M:%p', t))

# datetime模块:
# 模块下有几个子模块:
# date:处理年月日 time:处理时分秒、微秒 datetime:处理年月日,时分秒,微秒
# 1、时间元组表示:
dt = datetime.datetime(2018, 6, 24, 16, 56, 45, 0) # (年、月、日、时、分、秒、微秒)
# 2、截取时间元组中的部分:
print(dt.year)
print(dt.month)
print(dt.date())
print(dt.time())
print(dt.weekday())
print(dt.isoweekday())
# 3、获取当前时间:
print(datetime.datetime.today())
print(datetime.datetime.now())
# 4、获取时间戳:
print(dt.timestamp())  # 获取时间戳
print(datetime.datetime.fromtimestamp(dt.timestamp()))  # 将获取时间戳格式化显示
# 5、按自定义格式返回字符串:
print(dt.strftime('%Y-%m-%d'))
# 6、英文显示:
print(dt.ctime())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值