-- coding:utf-8 --
import sys
import os
python os模块提供了一个统一饿操作系统接口函数(针对文件)
os模块:是python获取文件的相关参数(路径,文件名称,文件大小,修改时间。。)
os不参与文件的读写
import os
#1.查看文件路径、名称
'''
查看当前文件的绝对路径
os.path.realpath(文件对象) 返回指定文件的绝对访问路径地址
'''
absolutePath = os.path.realpath(__file__) #__file__ 为python内置关键对象,专门获取当前文件对象的引用
print('当前文件绝对路径:{0}'.format(absolutePath))
'''
查看当前文件所在目录的绝对路径地址
函数:os.path.dirname(文件绝对路径)返回指定文件所在目录的绝对路径
'''
absuotePath1 = os.path.dirname(absolutePath)
print('当前文件目录:{0}'.format(absuotePath1))
#2.查看文件路径,文件名称
'''
查看文件名称
函数:os.path.basename(文件绝对路径)
'''
print('当前文件的名称:{0}'.format(os.path.basename(absolutePath)))
'''
查看当前工程文件夹的绝对路径
函数:os,getcwd()
'''
print('当前工程文件夹:{0}'.format(os.getcwd))
'''
查看当前文件大小
函数:os.path.getsize(文件绝对路径) 返回大小,单位字节
'''
print('当前文件的大小为:{0}'.format(os.path.getsize(absolutePath)))
#3.获取文件的创建,修改,最后访问时间
#查看文件创建时间 os.path.getctime(文件绝对路径) 返回时间戳
print('当前文件创建时间:{0}'.format(os.path.getctime(absolutePath)))
#扩展,时间戳转时间格式
import time
def TimeStampToTime(timestamp):
timeStruct = time.localtime(timestamp)
return time.strftime('%Y-%m-%d %H:%M:%S',timeStruct)
createTime = os.path.getctime(absolutePath)
print('当前创建时间:{0}'.format(TimeStampToTime(createTime)))
#查看当前文件的访问时间 os.path.getatime(文件的绝对路径) 返回时间戳
accesstime = os.path.getatime(absolutePath)
print("当前文件的访问时间为:{0}".format(TimeStampToTime(accesstime)))
#查看当前文件的修改时间 os.path.getmtime(文件绝对路径)
modifytime = os.path.getmtime(absolutePath)
print('当前文件的修改时间:{0}'.format(TimeStampToTime(modifytime)))
#4.判断是文件还是文件夹 os.path.isdir(文件对象)
flag= os.path.isdir(absolutePath)
if flag:
print("是文件夹")
else:
print('是文件')
#os.listdir(文件对象)返回列表对象,参数为空,返回当前公告称文件夹中所有文件名
print('当前工程文件夹中的文件:{0}'.format(os.listdir))
print('指定目录下文件名称:{0}'.format(os.listdir(absuotePath1)))
print('+' *30)
#获取文件夹信息
#os.walk(文件地址)返回文件路径地址,文件夹集合,文件夹中的文件
for root, dires, files in os.walk(absuotePath1):
print('|-文件夹路径:%s'%root) #获取文件夹中所有目录及子目录名称
print('| |-路径下的文件夹:{0}'.format(dires)) #获取当前文件夹中子文件夹名称
print('| | |-文件夹中的文件:{0}'.format(files)) #获取当前文件夹中子文件夹中文件名
print('+' *30)
#文件读取 open(文件路径,读写模式[,encoding=编码格式])
testPath = absuotePath1 + os.sep + 'test.txt' #os.sep 文件目录分隔符/
#绝对路径读取文件
input = open(testPath,'r')
#相对路径读取文件
input1 = open('test.txt','r')
#**open()在读取文件是,文件不存在则创建文件
'''
文件写入
write(字符串)
步骤:1获取程序与文件关联;2.写入数据;3.关闭文件对象
'''
import io
fileDir = os.path.join(os.getcwd(),'createDir')
input2 = io.open(fileDir + os.sep + "write.txt",'wb+')
input2.write('中文∫')
input2.write('haohaoxuexi tiantianxiangshang'.encode('utf-8'))
input2.close()
print('写入完毕')
'''
使用with,很好的处理上下文环境与异常情况,自动释放对象内存
方式:with open(文件路径,读写模式) as 文件对象
'''
with open(fileDir + os.sep + "write2.txt",'w') as fp:
fp.write("我在学习python\n")
'''
文件读取
read()函数实现向关联文件读取数据
步骤:1.获取程序与文件关联;2.读取并输出数据
'''
with open(fileDir + os.sep + 'read.txt','r') as fp:
content = fp.read()
print('读取的文件内容 = %s'%content)
'''
二进制文件的读写操作
实现图片的复制
#写入
with open(fileDir + os.sep + 'logog.png','w') as fp:
fp.write(ontent)
#写入
with open(fileDir + os.sep + 'logog.png','r') as fp:
fp.read()
'''
'''
----------------------------------------------------------------------
Json数据
对象以{开始,}结束;
数组用[]
import json
json.dumps() :完成数据对象json格式化操作,返回json串对象
json.loads() :完成json数据的反序列化,返回一个原始对象
python序列化编码转换为json对应表
python : dict list,tuple str int,float True False None
Json : object array string number true false null
'''
import json
data = {'pid':'p001','pname':'测试商品名称','price':229}
strJson = json.dumps(data,ensure_ascii = False) #ensure_ascii = False 防止中文数据乱码
print('data原始数据:{0}'.format(data))
print('json转换数据:{0}'.format(strJson))
obj = json.loads(strJson)
print('obj->{0}'.format(type(obj)))
print(obj)
'''
json.dump(obj,file) :json 写入文件
json.load(file):文件中读取json
'''
with open(fileDir + os.sep + 'data.json','w') as fp:
json.dump(data,fp)
print('json文件写入文件成功')
pass
'''
----------------------------------------------------------------------
CSV格式文件存储
CSV:Comma-Separated-Values 字符分割值,因为分割值可以不为逗号,其文本以纯文本形式存储表格数据(数字和文本)
CSV文件由任意数目的文件组成,记录间以某种换行符分隔
每条记录由字段组成,字段间的分隔符是其他字符或字符串,最常见的是逗号或制表符,
CSV 数据文件常用于数据统计,数据分析过程中的数据存储
import csv
reader(.....)读取csv数据
writer(.....)写入csv数据
DictReader(.....)读取CSV数据转换成Dict类型
DictWriter(.....)读取字典数据写入csv文件
'''
#csv.weiter:(writerow单行写入,writerows多行数据写入)
import csv
colums = ['姓名','年龄','电话']
data = [('测试人员1',18,'1362344'),('测试人员2',20,'145232'),('测试人员3',22,'14323')]
with open(fileDir + os.sep + 'csvfile.csv','wb') as csvfile:
writer = csv.writer(csvfile) #获取writer写入对象
writer.writerow(colums) #写入数据标题,单行数据
writer.writerows(data) #写入多行数据
with open(fileDir + os.sep + 'csvfile.csv','r') as csvFile:
reader = csv.reader(csvFile)
for line in reader:
print(line)
网友评论