Python-输入与输出

less than 1 minute read

Published:

输入与输出

input函数

input() 函数暂停程序运行,同时等待键盘输入;直到回车被按下,函数的参数即为提示语,输入的类型永远是字符串型(str)

print函数

向控制台打印内容

文件的输入与输出

with open('file.txt', 'r') as fin:
    text = fin.read()

with open('file.txt', 'w') as fout:
    fout.write('{} {}\n'.format(iter, iter2))

我们先要用 open() 函数拿到文件的指针。其中,第一个参数指定文件位置(相对位置或者绝对位置);第二个参数,如果是 ‘r’表示读取,如果是’w’ 则表示写入,当然也可以用’rw’ ,表示读写都要。a 则是一个不太常用(但也很有用)的参数,表示追加(append),这样打开的文件,如果需要写入,会从原始文件的最末尾开始写入。

我们可以通过 read() 函数,来读取文件的全部内容。代码 text = fin.read() ,即表示把文件所有内容读取到内存中,并赋值给变量 text。

这么做自然也是有利有弊:

  • 优点是方便,接下来我们可以很方便地调用函数进行分析;
  • 缺点是如果文件过大,一次性读取可能造成内存崩溃。

这时,我们可以给 read 指定参数 size ,用来表示读取的最大长度。还可以通过 readline() 函数,每次读取一行,这种做法常用于数据挖掘(Data Mining)中的数据清洗,在写一些小的程序时非常轻便。如果每行之间没有关联,这种做法也可以降低内存的压力。而write() 函数,可以把参数中的字符串输出到文件中,也很容易理解。

with 语句用于自动执行close操作。

json序列化

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它的设计意图是把所有事情都用设计的字符串来表示,这样既方便在互联网上传递信息,也方便人进行阅读。

交换数据时,有字符串,有整数,有浮点数,甚至还有布尔型变量,全部混在一起并不方便解包。

JSON ,正能解决这个场景。你可以把它简单地理解为两种黑箱:

  • 第一种,输入这些杂七杂八的信息,比如 Python 字典,输出一个字符串;
  • 第二种,输入这个字符串,可以输出包含原始信息的 Python 字典。
import json
params = {
 'symbol': '123456',
 'type': 'limit',
 'price': 123.4,
 'amount': 23
} 
params_str = json.dumps(params)

print('after json serialization')
print('type of params_str = {}, params_str = {}'.format(type(params_str), params))

original_params = json.loads(params_str)

print('after json deserialization')
print('type of original_params = {}, original_params = {}'.format(type(original_params)
########## 输出 ##########
after json serialization
type of params_str = <class 'str'>, params_str = {'symbol': '123456', 'type': 'limit', 
after json deserialization
type of original_params = <class 'dict'>, original_params = {'symbol': '123456', 'type'