码迷,mamicode.com
首页 > 编程语言 > 详细

python基础5—文件 | json序列化

时间:2018-01-22 17:37:47      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:readlines   class   绝对路径   python基础   python2   join   环境变量   文本   rem   

下面这些代码没有经过试验, 只是作为代码段作为日后的参考, 这些死的api姑且放在这里用的时候看一下再做总结

import sys
print(sys.path)

# ---------------文件----------------------------
# 第一种直接方式
file1 = open("test.txt")
file2 = open("output.txt", "w")  # w 表示 write (覆写) r 表示 read  a 表示 append (追写)
while True:
    line = file1.readline()
    file2.write(" + line[:s] + " + ",")
    if not line:
        break
file1.close()
file2.close()

# read()  将文本文件所有行读到一个字符串中
# readline() 一行一行的读
# readlines() 将文本所有行读到一个list中,每一行是list的一个元素

# 第二种  文件迭代器
file2 = open("output.txt", "w")
for line in open("test.txt"):
    file2.write(" + line[:s] + " + ",")

# 第三种  文件上下文管理器
# 打开文件
with open("somefile.txt", "r") as f:
    data = f.read()

# loop 整个文档
with open("somefile.txt", "w") as f:
    for line in f:
        #  处理每一行

# 写入文本
with open("somefile.txt", "w") as f:
    f.write("xxx")
    f.write("xxx")

# 要把打印的line写入文件中
with open("somefile.txt", "w") as f :
    print(line1, file=f)
    print(line2, file=f)

# 二进制文件读写
f = open("EDC.jpg", "rb")
print(f.read())  # 输出\xff\xd8.... 十六进制表示的字节

# 任何非标准文本文件(py2标准是ASCII, py3是unicode),用二进制读入文件,用.decode() 来解码
f = open("DeGuangGuo.txt", "rb")
u = f.read().decode(DeyunCode)

# 文件和目录的操作
# python调用内置的os模块来调用操作系统的接口函数
import os
os.name  # posix == nix   nt == windows
os.uname()  # 查看具体信息

# 环境变量 存在os.environ中  是list

# 当前目录的绝对路径
os.path.abspath(.)
# 在某个目录下创建一个新目录,把新目录表示出来
os.path.join(/Users/EDC, Pictures) # 得到是新路径的字符串
# 创建目录
os.mkdir(/Users/EDC/Pictures/)
# 删除目录
os.rmdir(/Users/EDC/Pictures)
# 拆分字符串
os.path.split(/Users/EDC/Pictures/AJ.avi) # 拆分为俩部分, 后一部分为最后级别的目录或者文件
# (‘/Users/EDC/Pictures/‘, ‘AJ.avi‘)
# 得到文件扩展名
os.path.splitext(/Users/EDC/Pictures/AJ.avi)
# (‘/Users/EDC/Pictures/AJ‘, ‘.avi‘)
# 文件重命名
os.rename(xxx.xx, bbb)
# 删除文件
os.remove(xxx)

# 可以使用 Shutil来帮助我们搞定文件
# 列出当前目录下的所有目录
[x for x in os.listdir(.) if os.path.isDir(x)]
# 列出 .py文件
[x for x in os.listdir(.) if os.path.isDir(x) and os.path.splitext(x)[1] == .py]


# 序列化 从内存存储到硬盘或者传输的过程为序列化  从硬盘到内存为反序列
import pickle
d = dict(name=jack, age=23, score=60)
str = pickle.dumps(d) # 调用pickle的dumps函数进行序列化处理
print(str)

f = open("dump.txt", "wb")
pickle.dump(d, f)    # 将内容序列化写到文件中
f.close()


# 反序列化
import pickle
f = open("dump.txt", "rb")
d = pickle.load(f)    # 调用load做反序列化
f.close()
print(d)
print(name is %s % d[name])

# python2 和3 里面的pickle不一致,为了保证和谐
try:
    import cPickle as pickle
except ImportError:
    import pickle

# json 序列化   使用json这个库即可 
import json
d1 = dict(name=jack, age = 29, score=32)
str = json.dump(d1)  # 序列化

d2 = json.loads(str) # 反序列化

 

python基础5—文件 | json序列化

标签:readlines   class   绝对路径   python基础   python2   join   环境变量   文本   rem   

原文地址:https://www.cnblogs.com/zeroones/p/8329499.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!