首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python3 IO编程

    IO 在计算机中指 Input/Output,也就是输入和输出。由于程序和运行时数据是在内存中驻留,由 CPU 这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘、网络等,就需要 IO 接口。 IO 编程简单理解指的是你的程序涉及到 cpu、内存和磁盘、网络的数据交互。因为 cpu、内存和磁盘、网络的速度有差异,所以在 IO 编程中,就存在速度严重不匹配的问题,比如网络爬虫的实例,网页解析可能只要 0.001秒,但是下载网页可能要 0.1s,为解决速度不匹配的问题,可以使用异步 IO,使用异步 IO 来编写程序性能会远远高于同步 IO,但是异步 IO的缺点是编程模型复杂。 操作 IO 的能力都是由操作系统提供的,每一种编程语言都会把操作系统提供的低级 C 接口封装起来方便使用, Python 也不例外。

    01

    linux显示所有文件的大小,显示文件夹下文件的个数,hadoop命令中查看文件夹下的个数命令,模糊查询

    linux 下查看文件个数及大小       ls -l |grep “^-“|wc -l       或       find ./company -type f | wc -l       查看某文件夹下文件的个数,包括子文件夹里的。       ls -lR|grep “^-“|wc -l       查看某文件夹下文件夹的个数,包括子文件夹里的。       ls -lR|grep “^d”|wc -l       说明:       ls -l       长列表输出该目录下文件信息(注意这里的文件,不同于一般的文件,可能是目录、链接、设备文件等)       grep “^-“       这里将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d       wc -l       统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于       一行信息对应一个文件,所以也就是文件的个数。       Linux查看文件夹大小       du -sh 查看当前文件夹大小       du -sh * | sort -n 统计当前文件夹(目录)大小,并按文件大小排序       du -sk filename 查看指定文件大小

    02

    JS、ActiveXObject、Scripting.FileSystemObject

    一、功能实现核心:FileSystemObject 对象 要在javascript中实现文件操作功能,主要就是依靠FileSystemobject对象。 二、FileSystemObject编程 使用FileSystemObject 对象进行编程很简单,一般要经过如下的步骤: 创建FileSystemObject对象、应用相关方法、访问对象相关属性 。 (一)创建FileSystemObject对象 创建FileSystemObject对象的 代码只要1行: var fso = new ActiveXObject(“Scripting.FileSystemObject”); 上述代码执行后,fso就成为一个FileSystemObject对象实例。 (二)应用相关方法 创建对象实例后,就可以使用对象的相关方法了。比如,使用CreateTextFile方法创建一个文本文件: var fso = new ActiveXObject(“Scripting.FileSystemObject”); var f1 = fso.createtextfile(“c:\myjstest.txt”,true”); (三)访问对象相关属性 要访问对象的相关属性,首先要建立指向对象的句柄,这就要通过get系列方法实现:GetDrive负责获取驱动器信息,GetFolder负责获取文件夹信息,GetFile负责获取文件信息。比如,指向下面的代码后,f1就成为指向文件c: est.txt的句柄: var fso = new ActiveXObject(“Scripting.FileSystemObject”); var f1 = fso.GetFile(“c:\myjstest.txt”); 然后,使用f1访问对象的相关属性。比如: var fso = new ActiveXObject(“Scripting.FileSystemObject”); var f1 = fso.GetFile(“c:\myjstest.txt”); alert(“File last modified: ” + f1.DateLastModified); 执行上面最后一句后,将显示c:myjstest.txt的最后修改日期属性值。 但有一点请注意:对于使用create方法建立的对象,就不必再使用get方法获取对象句柄了,这时直接使用create方法建立的句柄名称就可以: var fso = new ActiveXObject(“Scripting.FileSystemObject”); var f1 = fso.createtextfile(“c:\myjstest.txt”,true”); alert(“File last modified: ” + f1.DateLastModified); 三、操作驱动器(Drives) 使用FileSystemObject对象来编程操作驱动器(Drives)和文件夹(Folders)很容易,这就象在Windows文件浏览器中对文件进行交互操作一样,比如:拷贝、移动文件夹,获取文件夹的属性。 (一)Drives对象属性 Drive对象负责收集系统中的物理或逻辑驱动器资源内容,它具有如下属性: l TotalSize:以字节(byte)为单位计算的驱动器大小。 l AvailableSpace或FreeSpace:以字节(byte)为单位计算的驱动器可用空间。 l DriveLetter:驱动器字母。 l DriveType:驱动器类型,取值为:removable(移动介质)、fixed(固定介质)、network(网络资源)、CD-ROM或者RAM盘。 l SerialNumber:驱动器的系列码。 l FileSystem:所在驱动器的文件系统类型,取值为FAT、FAT32和NTFS。 l IsReady:驱动器是否可用。 l ShareName:共享名称。 l VolumeName:卷标名称。 l Path和RootFolder:驱动器的路径或者根目录名称。 (二)Drive对象操作例程 下面的例程显示驱动器C的卷标、总容量和可用空间等信息: var fso, drv, s =””; fso = new ActiveXObject(“Scripting.FileSystemObject”); drv = fso.GetDrive(fso.GetDriveName(“c:\”)); s += “Drive C:” + ” – “; s += drv.VolumeName + ” “; s += “Total Space: ” + drv.T

    02

    M2O视频存储空间调整记录

    之前M2O流媒体平台的视频点播存储空间将近满了。为了避免硬盘满了,造成视频录制异常。进行了视频存储资源的迁移。 实际执行的时候,大概1分钟内完成新旧平台的切换。但是前期准备工作进行了很久。回想起来之前学校的媒资管理系统更换硬盘的情况,和这个有很多类似。之所以耗费时间,主要是原有存储设备向新的存储设备的数据拷贝、文件数量校对、文件大小校对上。 这个调整,从开始筹划,到最终完成,大概有下面几个阶段: 1)前期和开发公司运维人员讨论出来一种解决方案,利用硬盘挂载、网络共享的方法实现存储设备的调整 2)不同服务器之间硬盘的挂载 3)制定了迁移时候的方案 4)拷贝数据,前后持续了2周左右。当中涉及到了视频截图文件夹中存在500G左右的直播截图文件的确认和清理工作(最终证明视频截图和计划任务的配置有关,相关功能已停用,但原有截图没有自动清除) 5)核心部分,告诉所有后台编辑人员停止视频上传、挑选了没有视频录制、没有视频时移也没有转码进程的时间,进行了存储设备调整 6)调整完后,测试了自动收录和时移功能,发现转码设备获取视频路径存在异常,导致转码服务无法获取到原始视频。调整新的资源位置后,重新提交转码任务,顺利完成视频转码 7)配置了几台设备的开机硬盘自动挂载,这样就可以一定程度避免设备重启导致的无法获取资源问题 用到和加深理解的几个命令有 1)查看文件夹以及子文件件的文件数量 find . |wc -l 2)查看当前文件夹以及子文件夹的文件大小之和 du -s 3)非覆盖目标文件的拷贝(涵盖子目录所有文件、可视化) cp -nrv source/file dest/file 4)设置文件软链接(觉得很像快捷方式) ln -sf TARGET LINK_NAME -s, --symbolic  make symbolic links instead of hard links -f, --force  remove existing destination files 5)设置设备开启启动完成后,执行的命令(貌似像是开机启动项) 修改/etc/rc.local This script will be executed *after* all the other init scripts. You can put your own initialization stuff in here if you don't want to do the full Sys V style init stuff.

    02
    领券