欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python安装与IO编程

程序员文章站 2024-01-16 19:33:16
《python爬虫开发与项目实战》基础篇(一) 一.python安装 1.python IDLE 下载官网:www.python.org 注:在选择安装组件时勾选所有组件,特别注意勾选pip和Add python.exe to Path 2.pycharm 下载官网:https://www.jetb ......

《python爬虫开发与项目实战》基础篇(一)

一.python安装

1.python idle

    下载官网:www.python.org

    注:在选择安装组件时勾选所有组件,特别注意勾选pip和add python.exe to path

2.pycharm

    下载官网:https://www.jetbrains.com/pycharm/

    由jetbrains打造的一款python ide,同时支持google app engine,ironpython

3.anaconda

    下载官网:https://www.anaconda.com/download/

    一个开源的python发行版本,包含了大量安装好的科学包如:numpy、pandas等

二.io编程

1.文件读写

    打开文件:

            python安装与IO编程

    open函数中的mode参数:

                     python安装与IO编程

    open函数中的buffering参数:

             python安装与IO编程

 

    文件读取与写入:经常用到的方法有read(),readlines(),write(),close()

                                 read(size)一次最多读取size个字节,返回字符串;readlines()一次读取全部内容按行返回列表

                                 文件使用完后必须关闭!使用try...finally进行文件操作防止io异常

try:
    f = open("d:/python/test.txt","r+")  # 'r+' == r+w(可读可写,文件若不存在就报错(ioerror))
    print(f.read())
    f.write("def")
    f.seek(0,0)                          # 把文件指针从末尾移到开头
    print(f.read())
finally:
    if f:
        f.close()

    python中可使用with语句替代try...finally代码块和close()方法

with open("d:/python/test.txt","r+") as f:
    print(f.read())
    f.write("def")
    f.seek(0,0)                        
    print(f.read())

2.目录操作

    常用模块:os模块和shutil模块

3.序列化

    把内存中的变量变成可存储或可传输的过程就是序列化

    python中采用pickle模块实现序列化,主要使用dump方法(将序列化后的对象直接写入文件)或dumps方法(将任意对象序列化成一个str再写入文件保存)

import pickle
d = dict(url="index.html",title="首页",content="首页")
print(pickle.dumps(d))
with open("d:/python/test.txt","wb") as f:
    pickle.dump(d,f)

    pickle模块实现反序列化主要使用load方法(将文件直接反序列化为对象)或loads方法(将str反序列化为对象)

with open("d:/python/test.txt","rb") as f:
    d = pickle.load(f)
print(d)
d = pickle.loads(b'\x80\x03}q\x00(x\x03\x00\x00\x00urlq\x01x\n\x00\x00\x00index.htmlq\x02x\x05\x00\x00\x00titleq\x03x\x06\x00\x00\x00\xe9\xa6\x96\xe9\xa1\xb5q\x04x\x07\x00\x00\x00contentq\x05h\x04u.')
print(d)