• python学习杂记--print信息写入文件


    除了使用日志生成函数logger,还可以直接将print的信息写入到目标文件中

    logger方法如下:

     1 def log(message):
     2     # 创建info级别的记录器
     3     logger = logging.getLogger(__name__)
     4     if not logger.handlers:
     5         logger.setLevel(logging.INFO)
     6         # 创建日志处理程序,并将log命名为log.txt,logging.info表示log中打印信息的级别为info(只有级别高于info才会写进文档。)
     7         filename = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time())) + r"_appium_log.txt"
     8         handler_info = logging.FileHandler('..logs\'+filename, 'w',encoding="utf-8")
     9         handler_info.setLevel(logging.DEBUG)
    10         # # console中输出日志信息(console输出和上方两行的log.txt只能选一种输出方式,不可以共存)
    11         # handler_info = logging.StreamHandler()
    12         # handler_info.setLevel(logging.INFO)
    13 
    14         # 日志格式
    15         #     formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    16         #     handler_info.setFormatter(formatter)
    17 
    18         # 将日志处理程序加入到记录器
    19         logger.addHandler(handler_info)
    20     logger.info(message)
    21     # logger.handlers.clear()
    22     return logger

    print方法如下:

    1 # 首先确定要写入的文件位置
    2 File_address = r'xxxx/xxx/xxx/xx.txt'
    3 f = open(File_address,'a')
    4 
    5 print("This is for test", file=f)(或者还有一种方法是f.write(内容),用write方法需要在写完之后加上f.close())

    python关于文件的读取权限:

    ‘r’只读。该文件必须已存在。

    ‘r+’可读可写。该文件必须已存在,写为追加在文件内容末尾。

    ‘rb’:表示以二进制方式读取文件。该文件必须已存在。

    ‘w’只写。打开即默认创建一个新文件,如果文件已存在,则覆盖写(即文件内原始数据会被新写入的数据清空覆盖)。

    ‘w+’写读。打开创建新文件并写入数据,如果文件已存在,则覆盖写。

    ‘wb’:表示以二进制写方式打开,只能写文件, 如果文件不存在,创建该文件;如果文件已存在,则覆盖写。

    ‘a’追加写。若打开的是已有文件则直接对已有文件操作,若打开文件不存在则创建新文件,只能执行写(追加在后面),不能读。

    ‘a+’追加读写。打开文件方式与写入方式和'a'一样,但是可以读。需注意的是你若刚用‘a+’打开一个文件,一般不能直接读取,因为此时光标已经是文件末尾,除非你把光标移动到初始位置或任意非末尾的位置。(可使用seek() 方法解决这个问题)

     1 print(f.readline())    # 打印一行
     2 print(f.readline(5))   # 打印前5个字符
     3 print(f.tell())        # 打印当前指针位置
     4 print(f.read())        # 读完文件后,指针在最尾处
     5 f.seek(0)              # 如要重头到尾再读,文件指针须先回到文件头(0-文件头,默认值; 1-当前位置; 2-文件尾)
     6 print(f.read())        # 重读文件
     7 print(f.encoding)      # 打印当前使用的字符编码
     8 print(f.name)          # 打印文件名
     9 print(f.flush())       # 刷新
    10 f.truncate()           # 清空文件
    11 f.truncate(12)         # 从头开始,第12个字符后截断并清除
    12 f.close()              # 关闭文件

    打开文件时有时还需要注意加上以哪种编码方式打开

    常用的有“GBK”,“utf-8”,“iso-8859”

    Windows默认操作系统字符编码是GBK

    Python默认操作的字符编码是“utf-8”,也可用“iso-8859”

  • 相关阅读:
    避免scrollview内部控件输入时被键盘遮挡,监听键盘弹起,配合做滚动
    红包功能的开发总结
    App启动时间分析
    第三方动画库 Lottie嵌入记录
    加入一个新的团队需要做什么
    OC 面向对象的特性
    为什么说OC是运行时语言?什么是动态类型、动态绑定、动态加载?
    adb pull 和 adb push
    《重构:改善既有代码的设计》重构的方法整理
    《重构:改善既有代码的设计》(二) 代码的坏味道
  • 原文地址:https://www.cnblogs.com/RuiRuia/p/13717741.html
Copyright © 2020-2023  润新知