美文网首页
文件操作

文件操作

作者: 墨凌风起 | 来源:发表于2020-07-11 16:28 被阅读0次

-- 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)


相关文章

  • 文件操作

    文件操作 目标 文件操作的作用 文件的基本操作打开读写关闭 文件备份 文件和文件夹的操作 一. 文件操作的作用 思...

  • 文件和目录处理相关

    文件和目录处理相关 题: 考点:文件操作/写入操作; 延伸:目录操作函数,其他文件操作; 文件读写操作 文件系统函...

  • 09-文件操作

    一、文件操作流程 a.普通文件操作流程: 打开文件 操作文件 关闭文件 b. json文件操作流程: open(文...

  • VBS文件操作

    VBS文件操作'操作文本文件,操作fso对象(文件对象操作) --------------------------...

  • 文件操作

    文件操作:打开文件、读写文件、操作文件内容 写入文件操作:(把大象装入冰箱)1.打开文件 ...

  • 类的补充

    一.复习 1.文件操作a.操作流程:打开文件(open),操作文件,关闭文件with open() as 文件变量...

  • 文件

    目标 文件操作的作用 文件的基本操作打开读写关闭 文件备份 文件和文件夹的操作 一. 文件操作的作用 思考:什么是...

  • 16总 正则表达式

    复习: 1.文件操作a.操作流程: 打开文件(open) --- 操作文件 --- 关闭文件(close)with...

  • 2018-09-10

    01-recode 1.文件操作a.操作流程:打开文件---》操作文件----》关闭文件with open() ...

  • 2018-09-10 day16总结

    1.文件操作 a.操作流程:打开文件(open)-操作文件-关闭文件(close)with open() as 文...

网友评论

      本文标题:文件操作

      本文链接:https://www.haomeiwen.com/subject/msyicktx.html