当前位置: 首页 > news >正文

python显示数据长度_python 读取数据再写入,文件大小总会出现变差?

python 2.7.8

def file_by_block(file, begin, end):

with open(file, 'rb') as fp:

fp.seek(begin) #寻找文件中某个给定的位置

lenthofdata = end - begin #希望读取的大小

data = fp.read(lenthofdata)

with open('C:\\Users\\Administrator\\Desktop\\TEMP\\b.text', 'ab+') as fd:

fd.writelines(data)

无论用writelines还是write,用'a','ab','ab+',总是不能把data完整的写入到fd中。求高人指点,先谢!

多线程调用上面读取写入的部分:

def process_pid(pid, array, file, rlock):

'''

多个动作pid同时开动。

'''

FILE_SIZE = getFilesize(file)

while 1:

rlock.acquire()

begin = max(array)

end = array[pid] = (begin + BLOCKSIZE) if (begin + BLOCKSIZE) < FILE_SIZE else FILE_SIZE

rlock.release()

if begin == FILE_SIZE:

break

elif end < FILE_SIZE:

file_by_range(file, begin, end,pid)

elif end == FILE_SIZE:

file_by_range(file, begin, end,pid)

else:

break

def main():

file = "C:\\Users\\Administrator\\Desktop\\a.mkv"

FILE_SIZE = getFilesize(file)

rlock = RLock()

array = Array('l', WORKERS, lock=rlock)

threads = []

for i in range(WORKERS):

p = Process(target=process_pid(), args=[i, array, file, rlock])

threads.append(p)

for i in range(WORKERS):

threads[i].start()

for i in range(WORKERS):

threads[i].join()

print 'in main :', datetime.datetime.now().strftime("%Y-%d-%m %H:%M:%S")

if __name__ == '__main__':

main()

相关文章:

  • datagrid如何获取一行数据中的某个字段值_UI测试中,我们应该注意哪些?
  • python常考题_python 一个批量出考题,生成不同考卷的小例题
  • python简历项目经验在哪里找_Linux运维工程师简历项目经验
  • matlab函数编写_实验二 | M函数与M文件的编写与应用
  • docker 部署_docker自动化部署前端项目实战
  • 如何将网站前端如何添加登录密码访问_如何将自己的网站上线到服务器端详解!...
  • python根据时间序列画折线图_如何根据时间序列金融数据画出分年对比的季节性图表...
  • tkinter.filedialog如何一次性选择多个文件_多个文档怎样一键重命名?用这款工具只需七步即可实现...
  • python同一层次的代码、缩进可以不一致_Python3缩进对逻辑的影响
  • js修改style样式_Vue之 绑定样式
  • 第二次打开不是最大_前《足球周刊》主编卢劲:法国队何能缔造半世纪以来最大决赛比分?...
  • python运行闪退_解决Opencv+Python cv2.imshow闪退问题
  • python sklearn logistic_安利一个Python大数据分析神器!
  • python模块下载失败_Python安装模块出错解决的办法(pip相关的安装)
  • angular6表格控件推荐_用Excel做张老板最爱的自动化表格,让你的工资翻一番!【Excel教程】...
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • Android优雅地处理按钮重复点击
  • Brief introduction of how to 'Call, Apply and Bind'
  • JavaScript创建对象的四种方式
  • js数组之filter
  • Map集合、散列表、红黑树介绍
  • node学习系列之简单文件上传
  • SpingCloudBus整合RabbitMQ
  • Spring声明式事务管理之一:五大属性分析
  • Swift 中的尾递归和蹦床
  • swift基础之_对象 实例方法 对象方法。
  • 面试遇到的一些题
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 网络应用优化——时延与带宽
  • 写代码的正确姿势
  • 昨天1024程序员节,我故意写了个死循环~
  • ​人工智能书单(数学基础篇)
  • (1)SpringCloud 整合Python
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (分类)KNN算法- 参数调优
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (附源码)ssm码农论坛 毕业设计 231126
  • (接口自动化)Python3操作MySQL数据库
  • (十八)三元表达式和列表解析
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • ***监测系统的构建(chkrootkit )
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .net mvc 获取url中controller和action
  • .Net MVC4 上传大文件,并保存表单
  • .NET 依赖注入和配置系统
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • .net项目IIS、VS 附加进程调试
  • .net用HTML开发怎么调试,如何使用ASP.NET MVC在调试中查看控制器生成的html?
  • [ Linux ] git工具的基本使用(仓库的构建,提交)
  • [14]内置对象