我的需求很简单,就是统计一下我的安装脚本执行的次数和时间,格式是这样的

install_times:1|install_times:2018-09-03 15:58:46

install_times:2|install_times:2018-09-03 15:58:50

install_times:3|install_times:2018-09-03 15:58:54

首先我需要判断一下文件是否为空,我开始是这样写的

import time

import os

file_list = []

tags = False

with open("install_hadoop.txt", "r", encoding="utf-8") as f:

flag = bool(f.readline())

# obj = True

# f.seek(0)

if flag:

tags = True

for obj in f:

tmp_list = obj.split("|")

file_list.append(tmp_list)

last_times = int(file_list[-1][0].split(":")[1]) + 1

last_time = time.strftime("%Y-%m-%d %H:%M:%S")

else:

last_times = 1

last_time = time.strftime("%Y-%m-%d %H:%M:%S")

先通过f.readline()读一行文件出来,判断返回的对象是否为真,如果为真,则认为文件不为空,则继续往下走,这里有个问题就是,当我读出来一行后,我的指针的位置到了第一行的末尾,等下在去读文件,直接从第二行去读数据,本来我这里是要读到所有的数据,但是由于seek导致我的数据是从第二行开始的,所以得出来的结果就不对

这里可以有2种办法解决

1、通过f.readline()读一次文件之后,在f.seek(0),把指针在设置回到最开始的位置

with open("install_hadoop.txt", "r", encoding="utf-8") as f:

flag = bool(f.readline())

# obj = True

f.seek(0)

if flag:

tags = True

for obj in f:

tmp_list = obj.split("|")

file_list.append(tmp_list)

last_times = int(file_list[-1][0].split(":")[1]) + 1

last_time = time.strftime("%Y-%m-%d %H:%M:%S")

else:

last_times = 1

last_time = time.strftime("%Y-%m-%d %H:%M:%S")

2、修改判断文件是否为空的方法,采用os.path.getsize的方法来判断文件是否为空

with open("install_hadoop.txt", "r", encoding="utf-8") as f:

flag = bool(f.readline())

# obj = True

f.seek(0)

print(os.path.getsize("install_hadoop.txt"))

if flag:

tags = True

for obj in f:

tmp_list = obj.split("|")

file_list.append(tmp_list)

last_times = int(file_list[-1][0].split(":")[1]) + 1

last_time = time.strftime("%Y-%m-%d %H:%M:%S")

else:

last_times = 1

last_time = time.strftime("%Y-%m-%d %H:%M:%S")

至此,这个问题被解决,同时也对python的文件操作有了更深的理解,也明白了python设置seek的作用

python文件读写及形式转化和CGI的简单应用

一丶python文件读写学习笔记 open() 将会返回一个 file 对象,基本语法格式如下: open(filename, mode) filename:包含了你要访问的文件名称的字符串值. mo ...

python 文件读写操作(24)

以前的代码都是直接将数据输出到控制台,实际上我们也可以通过读/写文件的方式读取/输出到磁盘文件中,文件读写简称I/O操作.文件I/O操作一共分为四部分:打开(open)/读取(read)/写入(wri ...

python 文件读写方式

一.普通文件读写方式 1.读取文件信息: with open('/path/to/file', 'r') as f: content = f.read() 2.写入文件中: with open('/U ...

python文件读写小结

读文件 打开一个文件用open()方法(open()返回一个文件对象,它是可迭代的): >>> f = open('test.txt', 'r') r表示是文本文件,rb是二进制文件 ...

Python文件读写及网站显示

一.关于文件读写的笔记 (一) 文件概述 文件是一个存储在辅助存储器上的数据序列,可以包含任何数据内容 文件都是按照2进制进行存储的,但在表现形式上有2种:文本文件和二进制文件. 1. 文本文件 文本 ...

Python 文件读写操作实例详解

Python提供了必要的函数和方法进行默认情况下的文件基本操作.你可以用file对象做大部分的文件操作 一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法.1.得到当前 ...

python文件读写详解

# Python3 open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, ...

Python 简明教程 --- 24,Python 文件读写

微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 过去的代码都是未经测试的代码. 目录 无论是哪种编程语言,IO 操作都是非常重要的部分.I 即Inp ...

Python 文件读写,条件循环(三次登录锁定账号实例)

通过文件读写,条件循环相关语法,实现三次登录失败则锁定该账号的功能 需求一 """需求描述: 1.输入正确账号,密码,退出程序 2.登录失败,重新输入账号密码 3.同一账 ...

随机推荐

谈谈分布式版本管理工具Git

一.主流的版本管理工具 目前在企业中比较主流的版本管理工具有:GIT.SVN.CVS等等. 二.什么是Git? Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.是 L ...

Android For JNI(三)——C的指针,指针变量,指针常见错误,值传递,引用传递,返回多个值

Android For JNI(三)--C的指针,指针变量,指针常见错误,值传递,引用传递,返回多个值 C中比较难的这一块,大概就是指针了,所以大家还是多翻阅一下资料,当然,如果只是想了解一下,看本篇 ...

Python入门、练手、视频资源汇总,拿走别客气!

摘要:为方便朋友,重新整理汇总,内容包括长期必备.入门教程.练手项目.学习视频. 一.长期必备. 1. StackOverflow,是疑难解答.bug排除必备网站,任何编程问题请第一时间到此网站查找. ...

Java 雇员管理小练习(理解面向对象编程)

在学习集合框架的时候,初学者很容易练习到学生管理系统.雇员管理体统等练习题.在学习集合框架之前,基本上Java基本语法都学完了,集合框架也从侧面的检验对前面学习的理解.下面用一个曾经做过的练习题,回顾 ...

springboot 学习之路 20 (整合RabbitMQ)

整合RabbitMQ: 我的操作系统是window7 ,所以在整合ribbotMQ之前需要先安装rabbitMq服务:安装步骤请参考:window下安装RabbitMQ  这个详细介绍了安装步骤,请按 ...

Matlab基本用法

转至:http://blog.sina.com.cn/s/blog_8354dda801012dyn.html 目录: 一.说明 二.数据类型及基本输入输出 三.流程控制 四.循环 五.数组.数组运算 ...

Scrum 7.0

Sprint回顾 让我们一次比一次做得更好.   1.回顾组织 主题:“我们怎样才能在下个sprint中做的更好?” 时间:设定为1至2个小时. 参与者:整个团队. 场所:能够在不受干扰的情况下讨论. ...

Spring Boot干货系列:(四)Thymeleaf篇

Spring Boot干货系列:(四)Thymeleaf篇 原创 2017-04-05 嘟嘟MD 嘟爷java超神学堂 前言 Web开发是我们平时开发中至关重要的,这里就来介绍一下Spring Boo ...

Linux多网口绑定配合华为5700 eth-trunk技术,提高网络性能

在实际的环境中,服务器通过网口绑定技术,可以很容易的实现网口冗余,负载均衡,从而达到高可用的目的,而且可以提升网络的性能,大幅的提升网络I/O. 一般情况下,Linux的多网口绑定使用的是内核中的“b ...

【js 正则表达式】记录所有在js中使用正则表达式的情况

说实话,对正则表达式有些许的畏惧感,之前的每次只要碰到需要正则表达式去匹配的情况,都会刻意的躲过或者直接从度娘处获取. 此时此刻,感觉到了某一个特定的点去触及她.但笔者对于正则表达式使用上的理解是这样 ...

seek是python文件操作方法吗,seek引发的python文件读写的问题相关推荐

  1. python对文件的写操作方法seek_python文件操作及seek偏移详解

    一.python文件操作中的编码 本次测试是基于python 2.7.12   OS:Ubuntu16.04  pycharm环境,以及win7下2.7.12; 首先说下汉字在文件中占用的字节数,这个 ...

  2. python 文件指针在文件末尾_python文件操作及seek偏移详解

    一.python文件操作中的编码 本次测试是基于python 2.7.12   OS:Ubuntu16.04  pycharm环境,以及win7下2.7.12; 首先说下汉字在文件中占用的字节数,这个 ...

  3. python中读取文件过程中seek()函数的使用

    python中读取文件过程中seek()函数的使用 目录 概述: 语法: 参数: 返回值: 实例: 概述: seek() 方法用于移动文件读取指针到指定位置. 语法: seek() 方法语法如下: 文 ...

  4. python的tell和seek_python文件对象的seek和tell

    打开一个文件,读取内容,是很常见的操作.不过有的时候我们还需要反复读取文件中的内容,如果多次打开文件读取再多次关闭,显然不是特别好的操作,我们可以借助python文件对象的seek和tell函数,来实 ...

  5. python读取文件的三种方式_python中读取文件的f.seek()方法

    用于二进制文件中 F.seek方法 作用: 设置读写位置 F.seek(偏移量, whence=相对位置) 偏移量 大于0的数代表向文件末尾方向移动的字节数 小于0的数代表向文件头方向中移动的字节数 ...

  6. Python文件处理之seek(), tell()用法

    今天写socket传输大文件时, 发现了两个文件处理的神方法, seek(), 下面来介绍一下seek, 可以结合指针来理解 seek用法:就是定义指针类型. seek(v1, v2):参数v1表示跨 ...

  7. python中查找文件当前位置的命令为tell()_Python文件处理之seek(), tell()用法...

    今天写socket传输大文件时, 发现了两个文件处理的神方法, seek(), 下面来介绍一下seek, 可以结合指针来理解 seek用法:就是定义指针类型. seek(v1, v2):参数v1表示跨 ...

  8. 不是python对文件的读操作方法的是-python的文件操作方法

    python中的文件对象: 文件对象不仅可以用来访问普通的磁盘文件, 而且也可以访问任何其它类型抽象层面上的"文 件". 一旦设置了合适的"钩子", 你就可以访 ...

  9. 文件操作中file.seek()方法

    摘要: file.seek()可以将文件游标移动到文件的任意位置,本文具体的file.seek()文件游标移动操作方法. file.seek()方法标准格式是:seek(offset,whence=0 ...

最新文章

  1. Symfony学习笔记
  2. 国嵌Linux配置编译视频截图版
  3. php限制一个函数在几分钟内不被调用_在PHP一句话木马使用过程中的种种坑点分析...
  4. springcloud gateway 源码解析、请求响应流程、第三方响应结果在 gateway 的经过
  5. ajax preview,In jQuery, using ajaxSend to preview the url built
  6. 佰腾科技:专利大数据的云上裂变之路
  7. 北京科技大学大小年计算机,【猛戳】本科一批没录满高校名单(参考2015)!报志愿三步走211分8档,985分4档,全在这!...
  8. 虚拟机安装windows服务出现无法打开内核设备“\\.Global\vmx86”
  9. Asp.Net把word文件转换为html文件
  10. SpringBoot动态切换数据源-快速集成多数据源的启动器
  11. 数据挖掘项目:问答网站问题及回答数量预测(Sofa竞赛)排名:3/155
  12. 程序员记录每天工作日志软件_程序员日志记录简介
  13. 最新:斐讯K3千兆无线路由器刷官改版固件的详细图文教程
  14. LED的基本操作(138译码器 573锁存器)
  15. c语言指针重合,时钟指针重合问题的公式
  16. Anniversary party(最基础的树形dp)
  17. 腾讯云轻量应用服务器系统盘不够用怎么挂载云硬盘?
  18. 面向智能机器人的通讯安全机制研究与改进
  19. 红米note电信版_标注2014910_官方线刷包_救砖包_解账户锁
  20. 华为服务器pe下安装linux,华为服务器安装操作系统.docx

热门文章

  1. 软件工程导论考试-试卷4
  2. C++中你不知道的namespace和using的用法
  3. sqlserver2000企业版安装
  4. 域名投资市场双十一惊现新宠,ltd域名的火爆让域名服务商慌了手脚
  5. 贾跃亭否认乐视IPO造假 为FF融资暂时不会回国
  6. Kettle邮件发送
  7. 安卓锁屏密码忘记怎么办【超强解锁百分百有效!】
  8. CSS布局:CSS三大特性、盒子模型
  9. Python之Pandas使用知识汇总(持续更新)
  10. 安徽科技学院 信网学院网络文化节 张乐