- 学习测试开发的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>
结果
方法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>
结果
如果判断是否为空行,看是不是/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()
[]
处理数据文件
自己的代码:
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>
结果:
老师讲的
算法:
1.读取文件的每一行
for line in fp:
print(line)
- 读取每行之后,取前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>
结果: