python基础之IO

python IO类是指python中输入,输出,文件操作等,主要有print、input、open等。具体可见下表:

函数 作用
file (filename [,mode[,bufsize]] ) file类型的构造函数,作用为打开一个文件,当文件不存在时,且mode为写或追加时,作用为创建一个文件。filename:文件名称;mode:r:读,w:写,a:追加;bufsize:0:表示不缓冲,1:表示缓冲,大于1表示缓冲区的大小
input 获取用户的输入
open 打开文件
print 打印函数,打印要打印的内容

一、print

我们可以在pycharm中输入print(),然后按下alt+鼠标左键点击查看print函数的用法。如下:

def print(self, *args, sep=' ', end='\n', file=None): # known special case of print
    """
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
    
    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.
    """
    pass

我们可以看到print函数参数主要有*args、sep、end和file,作用如下:

参数 作用
*args 不定长参数 例如: “py is the best”,“green tea”,“你是个好人!”
sep 输出不定长参数的分隔符 例如: sep = “:”
end 控制输出后的格式:"\n"," “,”…"
file 可以控制数据输出到控制台还是文件夹中

如:

print("hello", "world", sep=",")

输出:

hello,world

end的用法如下:

for i in range(4):
    print(i)

输出:

0
1
2
3

当加入end参数时,变为

for i in range(4):
    print(i, end="")
print("hello", "world", sep=",")

输出:

0123hello,world

end是改变输出后的格式,空格等同于不换行。

二、input

input函数主要是获取键盘的输入,在py2.X版本中还有raw_input这种输入,作用是它会把输入都当做字符串处理,在py3.X版本中没有raw_input了,只有input这一种,返回str类型。
同样我们也可以查看input的用法,如下:

扫描二维码关注公众号,回复: 15795774 查看本文章
def input(*args, **kwargs): # real signature unknown
    """
    Read a string from standard input.  The trailing newline is stripped.
    
    The prompt string, if given, is printed to standard output without a
    trailing newline before reading input.
    
    If the user hits EOF (*nix: Ctrl-D, Windows: Ctrl-Z+Return), raise EOFError.
    On *nix systems, readline is used if available.
    """
    pass

三、open

python的open函数用于打开一个文件,并返回文件对象,是文件处理过程中常用的函数,如果文件无法被打开,会抛出OSError。
open函数的完整用法如下:

def open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True):

参数及其作用如下表:

参数 作用
file 必需,文件路径(相对或者绝对路径)
mode 可选,文件打开模式
buffering 设置缓冲
encoding 一般使用utf8
errors 报错级别
newline 区分换行符
closefd 传入的file参数类型

参数mode一共有如下几种类型:

模式 作用
r 只读模式
w 写入模式,如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
x 写入模式,新建一个文件用于写入,如果文件已存在则会报错
a 追加模式,打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾
b 二进制模式
t 文本模式,默认
+ 打开一个文件用于更新,可以读取也可以写入。+一般和别的模式合用,如r+:表示打开一个文件用于读写;w+:表示打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
U 通用换行模式(不推荐)

四、json转换

json是一种数据格式,百度百科对其解释为“JSON(JavaScriptObject Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率”。主要在前端用的比较多,python中需要了解一定的json转换,在爬虫时有较大的帮助。

函数 作用
json.dumps 将python对象编码为json字符串
json.loads 将已编码的json对象转换为python对象

1、把python对象转换为json对象:

import json
data = [{
    
    "md":"py","dennis":"java","jj":"groovy"},{
    
    "keven":"brave","david":"solar"}]
json_data = json.dumps(data,indent=4,sort_keys=True)
print(type(json_data))
print(json_data)

输出:

<class 'str'>
[
    {
    
    
        "dennis": "java",
        "jj": "groovy",
        "md": "py"
    },
    {
    
    
        "david": "solar",
        "keven": "brave"
    }
]

注意此时的“str”是json类型的str
2、把json对象转换为python对象

json_data = '{"mdeng":"py","dennis":"java","jj":"groovy","keven":"brave","david":"solar"}'
text = json.loads(json_data)
print(type(text))
print(text)

输出:

<class 'dict'>
{
    
    'mdeng': 'py', 'dennis': 'java', 'jj': 'groovy', 'keven': 'brave', 'david': 'solar'}

五、参考资料

https://www.runoob.com/python/python-func-open.html
https://baike.sogou.com/v25646.htm?fromTitle=JSON
https://mp.weixin.qq.com/s?src=11&timestamp=1586221747&ver=2263&signature=beqsaP1A9-YHH5n2vMfSoLcvzwKWPF4JpEdhL*Nla3EIvfhDka74Po1VvL0gvFLj9v4-0As8g0waBLurIRlLUNzB-vIe5lChnBHewpSW-dSr32RHriqi71Z2ec0kUhfi&new=1

猜你喜欢

转载自blog.csdn.net/JaysonWong/article/details/105357118
今日推荐