zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    java:选择排序
    java:快速排序
    MYSQL 5.7版本修改密码
    多级代理下获取客户端真实IP
    map相关操作:map遍历,map转换为list
    【导航】微信开发者相关网址导航
    【java】微信开发后台官方后台配置篇
    HTML页面加载loading
    表单JS提交失效
    后台request获得所有参数(当你不知道它包含什么参数)
  • 原文地址:https://www.cnblogs.com/zhufb/p/8243262.html
Copyright © 2011-2022 走看看