「Python」2020.04.11学习笔记 | 第六章文件truncate、删除空行、处理数据文件

  • 学习测试开发的Day100,真棒!
  • 学习时间为1H20M
  • 第九次全天课(下午视频二1H50M-2H40M)

fileObject.truncate( [size] )

把文件裁成规定的大小,默认的是裁到当前文件操作标记的位置。如果size比文件的大小还要大,依据系统的不同可能是不改变文件,也可能是用0把文件补到相应的大小,也可能是以一些随机的内容加上去。

代码示例:

#encoding=utf-8
# Open a file
fp = open(r"e:\test.txt", "r+")
print ("Name of the file: ", fp.name)
line = fp.readline()
print ("Read Line: %s" % (line))
# Now truncate remaining file.
fp.truncate(20)
print (fp.tell())
# Close opend file
fp.close()

输出:

PS D:\0grory\day9> python .\truncate.py
Name of the file:  D://0grory//day9//test2.txt
Read Line: hiab

6
PS D:\0grory\day9>

代码示例2:

>>> fp=open("D://0grory//day9//test2.txt","r+")
>>> fp.truncate(10)
10
>>> fp.close()
>>> fp=open("D://0grory//day9//test2.txt","r+")
>>> fp.read()
'hiab\ncd\n'
>>>

可以在造数据的时候用到

删除空行的方法

方法1:
#encoding=utf-8
import os
def delblank(infile,outfile):
    infp=open(infile,"r")
    outfp=open(outfile,"w")
    lines=infp.readlines()
    for li in lines:
        if li.split():
            outfp.write(li)
    infp.close()
    outfp.close()
if __name__=="__main__":
    delblank("D://0grory//day9//test2.txt","D://0grory//day9//test3.txt")

执行

PS D:\0grory\day9> python .\delblank_split.py
PS D:\0grory\day9>

结果


image.png

方法2:

#encoding=utf-8
fp=open(r"D://0grory//day9//test2.txt")
aList=[]
for item in fp:
    if item.strip():
        aList.append(item)
fp.close()
fp=open(r"D://0grory//day9//test4.txt",'w')
fp.writelines(aList)
fp.close()

执行:

PS D:\0grory\day9> python .\delblank_split.py
PS D:\0grory\day9>

结果


image.png

如果判断是否为空行,看是不是/n

>>> "\n"=="\n"
True
>>> "\n".strip()
''
>>> bool("\n")
True
>>>
>>> "\n".strip()==""
True
>>> "\naa".strip()==""
False
>>>
>>> "a b".split()
['a', 'b']
>>> "a\n".split()
['a']
>>> "\n".split()
[]

处理数据文件

image.png

自己的代码:

infp=open("D://0grory//day9//data.log","r")
lines=infp.readlines()
for li in lines:
    outname=li[0:14]
    print(outname)
    outcontent=li[15:]
    outfp=open("D://0grory//day9//"+outname,'w')
    outfp.write(outcontent)
infp.close()
outfp.close()

执行:

PS D:\0grory\day9> python .\mydata.py
20160215000148
20160215000153
20160216000120
20160216000121
20160217000139
20160217000143
PS D:\0grory\day9>

结果:


image.png

老师讲的

算法:
1.读取文件的每一行

for line in fp:
    print(line)
  1. 读取每行之后,取前14个字符
file_name=line[:14]

3.新建文件

fp=open(file_name,'w')

4.向新建的文件写内容

fp.write(line[14:])

5.关闭文件

老师的代码:

fp=open("D://0grory//day9//data.log","r")
for line in fp:
    filename=line[:14]
    content=line[14:]
    fp2=open("e://testman"+filename+".txt","w")
    fp2.write(content)
    fp2.close()
fp.close()

执行

PS D:\0grory\day9> python .\mydata.py
PS D:\0grory\day9>

结果:


image.png

你可能感兴趣的:(「Python」2020.04.11学习笔记 | 第六章文件truncate、删除空行、处理数据文件)