003、输入与输出

#! usr/bin/env python
# _*_ coding:utf-8 _*_

'''
一、格式化输出
    1、str.format()
        a、位置参数、关键字参数

        b、在字段后的 ':' 后面加一个整数会限定该字段的最小宽度,这在美化表格时很有用:

            >>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678}
            >>> for name, phone in table.items():
            ...     print('{0:10} ==> {1:10d}'.format(name, phone))
            ...
            Jack       ==>       4098
            Dcab       ==>       7678
            Sjoerd     ==>       4127


        c、用 ‘**’ 标志将这个字典以关键字参数的方式传入:

            >>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 8637678}
            >>> print('Jack: {Jack:d}; Sjoerd: {Sjoerd:d}; Dcab: {Dcab:d}'.format(**table))
            Jack: 4098; Sjoerd: 4127; Dcab: 8637678


    2、旧式字符串格式化:%

二、文件读写
    1、函数 open() 返回 文件对象,通常的用法需要两个参数:open(filename, mode)。

        第一个参数是一个含有文件名的字符串。第二个参数也是一个字符串,含有描述如何使用该文件的几个字符。
        mode 为 'r' 时表示只是读取文件;
        'w' 表示只是写入文件(已经存在的同名文件将被删掉);
        'a' 表示打开文件进行追加,写入到文件中的任何数据将自动添加到末尾。
        'r+' 表示打开文件进行读取和写入。对于同一个文件会进行数据从头开始覆盖;
        mode 参数是可选的,默认为 'r'。

    2、读取形式
        f.read()
        f.readline():从文件中读取单独一行
        for i in file:直接读取
        如果你想把文件中的所有行读到一个列表中,你也可以使用 list(f) 或者 f.readlines()。
        用关键字 with 处理文件对象是个好习惯。它的先进之处在于文件用完后会自动关闭,就算发生异常也没关系。它是 try-finally 块的简写。


三、使用json存储结构化数据
    1、序列化: json.dumps()、json.dump()
    2、反序列化:json.loads(),json.load()

    其中:如果 f 是为写入而打开的一个 文件对象。则可以使用:json.dump(list1,open('testfile.txt','w'))
          如果 f 是为读取而打开的 文件对象,则可以使用:

'''


#使用位置参数进行格式化输出
print('What is your {0}? my name is {1}!'.format('name','han mei mei'))

#使用关键字参数进行格式化输出
print('This {animal} is eating {food}.'.format(animal='dog',food='bone'))

#位置参数和关键字参数进行混用
print('What is your {0}? my name is {1}!This {animal} is eating {food}.'.format('name','li lei',animal='dog',food='bone'))



#在字段后的 ':' 后面加一个整数会限定该字段的最小宽度,这在美化表格时很有用:
table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678}
for name,number in table.items():
    print('{0:10}  ==>  {1:10d}'.format(name,number))


for x in range(1,11):
    print('{0:2d} {1:3d} {2:4d}'.format(x,x*x,x*x*x))



#用 ‘**’ 标志将这个字典以关键字参数的方式传入:

# print(**table)
# print('jack:{jack:d};Sjoerd:{Sjoerd:d};Dcab:{Dcab:d}'.format(**table))




#旧式的字符串格式化 %
import math
print('The value of PI is %5.3f' % math.pi)



#read()读取文件
# f = open('testfile.txt','r')
# print(f.read())

# f.close()


#使用readline()读取
# print(f.readline())
# f.close()


# for line in f:
#     print(line)
#print(f.readlines())
#print(list(f))


# for line in f.readlines():
#     print(line)

# with open('testfile.txt','r+') as f:
#     f.write('changlin test')


#json存储结构化数据

#读取python对象为字符串形式


import json
'''
list1 = [1,'sample','list']
str1 = json.dumps(list1)
print(str1)


str2 = json.dump(list1,open('testfile.txt','w')) #覆盖整个文件内容


listDemo = json.load(open('testfile.txt','r'))
print(listDemo)
print(type(listDemo))

'''

#python中的json模块可以将dict转str,str转dict,dict存储到文件中,文件中导入成dict

dict1={'user':'john','sex':'male'}  
str1=json.dumps(dcit1)#<class 'str'>  
print(json.loads(str1))#{'user': 'john', 'sex': 'male'}  

#可以直接用字符串转换  
str2='{"user":"john","sex":"male"}'  
print(json.loads(str2))#{'user': 'john', 'sex': 'male'}  




#导出和导入文件的代码
str='{"user":"john","sex":"male"}'  
  
with open('test.txt','w',encoding='utf-8') as fout:  
    json.dump(str,fout)  
  
with open('test.txt','r',encoding='utf-8') as fout:  
    print(json.load(fout))  

#json还可以将dict的list转成str存到文件里,再用load可以读入成一个dict格式的list
with open('test.txt','w',encoding='utf-8') as f:  
    f.writelines(json.dumps([{'hello':'world'},{'hello':'world'},{'hello':'world'}]))  
    print(type(json.dumps([{'hello':'world'},{'hello':'world'},{'hello':'world'}])))  
  
with open('test.txt','r',encoding='utf-8') as f:  
    test_l=json.load(f)  
    print(type(test_l[0]))

 

posted @ 2018-02-02 15:02  我是旺旺  阅读(159)  评论(0编辑  收藏  举报