批量读取文件

大家知道,我们读写硬盘的时候发送的命令为SCSI READ或SCSI WRITE。即SCSI读和SCSI写命令。但是READ和WRITE有很多种,这些命令的应用场合是什么呢?

最重要的一点就是,这是跟硬盘的容量大小有关的。

在很久以前,硬盘的容量很小,比如只有32MB。大家知道硬盘的LBA为512Byte。所以如果要表示32MB的空间需要2的16次方*512B=32MB

也就是说2个byte即可表示一个32MB的地址。

所以,在那个时候的读写命令就是read(6)和write(6),他们指定的LBA长度为2个byte!

但是随着磁盘容量的变大,2个byte完全不能表示硬盘的空间地址。那如果我想读写更大空间的内容呢,所以就用到了write(10)、read(10),他们指定的LBA长度为4个byte,因此表示的最大容量为2的32次方*512B=2TB。所以2TB以内的硬盘都可以用write(10)和read(10)

但是2TB显然不是终点,4个byte又不够了,怎么办,于是发展到了8个byte。这就是read(16)和write(16),他能表示的空间就大多了,估计在我们有生之年是彻底够用了。

import os
import pandas as pd
import codecs

path='D:/code12temp/pytorch/传统医疗敏感信息处理/data/'

listfile=os.listdir(path)
# print (listfile[0])

#去除重复行
# for i_file in listfile:
#    line_seen = set()  # 初始化空的无序集合
#    if '_xml' in i_file or 'dup' in i_file:
#
#        in_file=codecs.open(path+"\\"+i_file,mode='r',encoding='gbk')
#        i_file=i_file.replace('.txt','_dup.txt')
#        out_file=codecs.open(path+"\\"+i_file,mode='w',encoding='gbk') #w 如果文件不存在就新建
#        lines = in_file.readlines()
#        for line in lines:
#           if line not in line_seen:
#              out_file.write(line)
#              line_seen.add(line)
#        out_file.close()

import re

# strinfo = re.compile('word')
# b = strinfo.sub('python',a)

#去除各种符号
for i_file in listfile:
line_dup=set()
if ‘_xml’ in i_file and ‘dup’ in i_file:

   in_file = codecs.open(path + "\\" + i_file, mode='r', encoding='gbk')
   i_file = i_file.replace('.txt', '_preproc.txt')
   out_file=codecs.open(path+"\\"+i_file,mode='w',encoding='gbk') #w 如果文件不存在就新建
   lines = in_file.readlines()
   for line in lines:
       if len(set(line))==0:
           continue
       else:

         line=line.strip(' ')  #去除两端空格
         line=line.replace('{none}','')
         line=line.replace(' ','')
         line=line.replace('<FONT color=#ff0000>','')
         line=line.replace('</FONT>','')
         line = line.replace('"', '')
         line = line.replace('\?', '')
         line = line.replace('{COL}', '')
         re_fenhao= re.compile('&(.*?);')
         line=re_fenhao.sub('',line)
         reExp=re.compile('<(.*?)>') #去掉尖括号
         line=reExp.sub('',line)
         re_space=re.compile('\s{1,}')#去掉空格
         line=re_space.sub(' ',line)
         re_ques=re.compile('\?{1,}')#去掉多个问好
         line=re_ques.sub('',line)
         re_zhongkuohao_l=re.compile('\{')#去掉中括号
         line=re_zhongkuohao_l.sub('',line)
         re_zhongkuohao_r = re.compile('\}')
         line = re_zhongkuohao_r.sub('', line)#
         line=line.strip(' ')  #去除两端空
         if line not in line_dup:
            out_file.write(line)
            line_dup.add(line)
            out_file.write('\n')
   out_file.close()
   pass
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值