Python3 输入输出及文件操作

每天都是努力的姿态,每秒都是不同的自己

Posted by WEW on April 29, 2019

输出格式美化

python的输出格式有两种,一种是表达式语句一种是print()函数

第三种方式是使用文件对象的wirte()方法,标准输出文件可以用sys.stdout引用

如果想要控制输出的格式,可以使用str.format()函数进行格式控制

如果想把输出的格式转为字符串可以直接使用str()函数来实现

输出数的平方和立方表
方式1:
for x in range(1, 11):
    print(repr(x).rjust(2),repr(x*x).rjust(3),end=' ')
    print(repr(x*x*x).rjust(4))
    
输出结果如下:
 1   1    1
 2   4    8
 3   9   27
 4  16   64
 5  25  125
 6  36  216
 7  49  343
 8  64  512
 9  81  729
10 100 1000

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

rjust的控制是使字符串靠右对齐,同样的还有ljust、center等函数,也有左边补0的函数zfill()函数

'12'.zfill(5)
输出:
00012

str.format()的基本用法

print('{} is a big {}'.format('WEW','man'))
输出:WEW is a big man

可以看出上面{}控制输出格式,而format后面用来指定对应参数

print('{0} {1}'.format('WEW','wew'))
输出:WEW wew
print('{1} {0}'.format('WEW','wew'))
输出:wew WEW

从上式可以看出,{}中的数字用来指定参数的顺序

旧式字符串控制

import math
print{'PI近视值是%.2f'%math.pi}
输出:3.14

读取键盘输入 input函数

input 函数用来接收从键盘读入的数据

a=input() wew\n
print(a,type(a))  
b=input()  3\n
print(b,type(b))

输出:
wew str
3 str

文件读写

open()函数

open(filename,mode)

该函数返回一个file对象,其中filename包含了文件的地址,mode指明打开文件的格式:只读r,写入w,追加a+等

模式 描述
r 以只读方式打开文件,默认文件指针在文件开头
rb 以二进制只读方式打开文件,默认文件指针在文件开头
r+ 以读写方式打开文件,文件指针将放在文件开头
rb+ 以二进制读写方式打开文件,文件指针默认放在文件开头
w 打开一个文件,若文件存在,则从文件开头重新写入,文件原有的内容将会被删除,若文件不存在则建立该文件
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件
a 打开一个文件,若该文件存在,则文件指针放到文件的末尾,新的内容会被追加到原有文件内容的后面,若不存在该文件则创建新文件
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

f.write()函数

该函数用于写入文件内容

f=open('./foo.txt','w')
f.write('Python3 是一个很好用的语言。\n推荐使用。')
f.close()
输出:
foo.txt:
Python3 是一个很好用的语言。
推荐使用。

f.read()函数

该函数用于读入文件内容

f = open("/tmp/foo.txt", "r")

str = f.read()
print(str)
输出:
Python3 是一个很好用的语言。
推荐使用。

f.readline()函数

该函数用于读入文件内容的一行

f.readlines()函数

该函数用于读入文件的所有行并以列表的形式返回

f.seek()函数

设置文件指针的位置

pickle 模块

python中pickle实现关于数据的序列化和反序列化,通过pickle我们可以将运行中的对象进行序列化到文件中保存起来,永久存储。通过pickle模块我们也可以 将上次运行的对象反序列创建出来。 通过以下两个模块可以进行试验:

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)
print(selfref_list)
output = open('data.pkl', 'wb')
pickle.dump(data1, output)
pickle.dump(selfref_list, output, -1)
output.close()

输出:
data.pkl文件一个

import pprint,pickle
pkl_file=open('data.pkl','rb')
data1 = pickle.load(pkl_file)
pprint.pprint(data1)
data2 = pickle.load(pkl_file)
pprint.pprint(data2)
pkl_file.close()

输出:
{'a': [1, 2.0, 3, (4+6j)], 'b': ('string', 'Unicode string'), 'c': None}
[1, 2, 3, <Recursion on list with id=140367765472392>]