• python文件操作及修改


    import requests, os, time

    f = open('a', 'w', encoding='utf-8')
    f.read() # 读取文件里面所有的内容,返回的是字符串
    f.readline() # 只读一行的内容,返回的字符串
    f.readlines() # 读取文件里面所有的内容,返回的是一个list
    # list里面每个元素是每行的数据
    f.write('xxx') # 只能写字符串
    f.writelines() # 写可迭代对象
    f.tell() # 获取当前文件指针的位置
    f.close()
    names = ['a', 'b', 'c']
    f.write(names) # 文件写入字符串,一次性写入所有
    f.writelines(names) # 文件写入,内部循环写数,适用于List写数,提升效率
    f.flush() # 立即把缓存区域内容写入磁盘
    with open('a', encoding='utf-8') as a, open('b', 'w', encoding='utf-8') as b: # 使用with打开文件,多个使用逗号隔开
    a.write('a') # with打开文件,执行结束后自动关闭文件
    b.write('b')
    open('a.jpg', 'rb') # 以二进制模式打开文件(rb,wb,ab),适用于图片音频操作

    # 获取图片文件
    url = 'http://pic4.nipic.com/20091217/3885730_124701000519_2.jpg'
    img = requests.get(url).content
    f = open('a.jpg', 'wb')
    f.write(img)

    # 修改文件内容
    with open('a', 'a+', encoding='utf-8') as f:
    f.seek(0) # a+模式打开,文件指针需要前移到开始
    all = f.read() # 可以优化,文件过大时效率太低
    new_all = all.replace('1', '2')
    f.seek(0)
    f.truncate()
    f.write(new_all)
    f.flush()

    # 分行修改文件内容,提升效率
    with open('a', encoding='utf-8') as a, open('b', 'w', encoding='utf-8') as b:
    for line in a: # 循环获取文件每一行
    new_line = line.replace('1', '2') # 分行修改文件
    b.write(new_line)
    os.remove('a') # 删除文件,需要调用os模块
    os.rename('b', 'a') # 重命名文件

    # 获取日志中的IP
    point = 0 # 文件指针
    while True:
    ips = [] # 存放所有的ip地址
    blk_set = set() # 存放需要加入黑名单ip
    with open('access.log', encoding='utf-8') as f:
    f.seek(point)
    for line in f:
    ip = line.split()[0]
    ips.append(ip)
    # 10.125.1.1
    if ips.count(ip) > 200:
    blk_set.add(ip)
    for ip in blk_set: # 这里是因为防止ip重复加入黑名单,因为集合是去重的,所以里面没有重复的ip
    # os.system('jiaurru %s'%ip)
    print('加入黑名单%s' % ip)
    point = f.tell()
    time.sleep(30)
  • 相关阅读:
    python爬取二手房库存,存数据库,生成折线图(下)
    python爬取二手房库存,存数数据库,生成折线图(上)
    python爬取二手房库存,存数据库,生成折线图(中)
    vue input 复制后无法修改
    js对象应用问题
    redis5.0集群搭建
    查看java 字节码的方式
    python 运行js
    对java基本对象的构想
    学习第39天
  • 原文地址:https://www.cnblogs.com/zhufb/p/8243262.html
Copyright © 2020-2023  润新知