那年夏天

Python3 输入和输出

2019-01-11  本文已影响0人  坚持到底v2

1. 输出格式美化


2. 读写文件

open函数
open(filename,mode,buffering,encoding,errors,newline,closefd,opener)

其中 mode 有 r,rb,r+(读写),rb+,w,wb,w+,wb+,a,ab,a+,ab+
还要注意 encoding='utf-8'

实例

# 写入文件
f = open("/tmp/foo.txt", "w") 
# f = open('/Users/michael/gbk.txt', 'r', encoding='utf-8', errors='ignore')
with f:
    f.write( "Python 是一个非常好的语言。\n是的,的确非常好!!\n" )
    # 立刻写入文件
    f.flush() 

// 使用 with 会自动调用 f.close() 


# 读取文件
f = open("/tmp/foo.txt", "r", encoding='utf-8' ) 
with f:
  str=f.read()
  # f.readline() 如果返回一个空字符串, 说明已经已经读取到最后一行。
  str=f.readline(); 
  # 返回该文件中包含的所有行
  str=f.readlines(); 
 
  # 迭代的方式 
  for line in f: 
    print(line,end='');

  # 返回文件对象当前所处的位置, 它是从文件开头开始算起的字节数。
  f.tell() 
  # 改变文件当前的位置,from_what的值默认是0.
  # 0表示开头 1表示当前位置 2表示结尾
  # 在文本文件中 (那些打开文件的模式下没有 b 的), 只会相对于文件起始位置进行定位
  f.seek(offset, from_what) 


2.2 序列化和反序列化 pickle模块

pickle.dump(obj, file, [,protocol])
x = pickle.load(file)

2.3 写入示例

import pickle
data1 = {'a': [1, 2.0, 3, 4+6j],
    'b': ('string', u'Unicode string'),
    'c': None}
selfref_list = [1, 2, 3]
selfref_list.append(selfref_list)
output = open('data.pkl', 'wb')
pickle.dump(data1, output) # 使用 protocol 0 dump 字典
pickle.dump(selfref_list, output, -1) # 使用最高的protocol dump 列表
output.close()

2.4 读取示例

import pprint, pickle
pkl_file = open('data.pkl', 'rb')
data1 = pickle.load(pkl_file)
pprint.pprint(data1)
pkl_file.close()
上一篇下一篇

猜你喜欢

热点阅读