python中文件读取中w,w+之间的区别

0.注意事项

1.如果想要把下面介绍的代码跑通,都需要把准备动作部分代码加上。比如你想测试下w,那就在w部分代码前面把准备动作部分(部分1)的代码加上。
2.本文中用到w的时候请使用writelines,原因本文的准备工作中把要写入的东西准备成了序列形式,而不是字符串:

  • file.write(str)的参数是一个字符串,就是你要写入文件的内容.
  • file.writelines(sequence)的参数是序列,比如列表,它会迭代帮你写入文件。

1.准备动作

lines = open('head.txt').readlines()
for line in lines:
    line = line.strip()
    #line中存的head文件中保存的底下的各个txt的名称
    #如1.txt/2.txt

    #这一段的作用相当于把所有的修改的东西先定义好
    #并且存在file_lines里面
    #后面用writelines把这整个修改写进文件里面
    with open(line) as file:
        file_lines = file.readlines()
        for i in range(0,len(file_lines)):
            file_lines[i] = "0" +" "+ file_lines[i].strip() + " "+"1"+"\n"
            #print(file_lines[i])
     with xxxx #执行注意事项第一项的时候请把后面的代码加到这个位置。(原理就是请加在for循环里面)
#--------------前面只是利用w,r,w+,r+处理前的基础准备---------


下图展示的上述代码中用到的txt文件具体实例。


python中文件读取中w,w+之间的区别_第1张图片

2.w 和 w+()

#先讲w和w+:
#w:仅仅表示写入
#w+:既可以写入还可以读取
#但w和w+有一个共同特性就是,一写就会先把原先存在txt中的东西清空
#举例说明

with open(line,"w") as file2:
        file2.writelines(file_lines)

执行结果如下:


1

with open(line,"w") as file2:
         file2.read()        
         file2.writelines(file_lines)
        

执行结果如下:
汇报错误,表示利用w打开文件时,是没有读的功能的。


2

with open(line,"w+") as file2:
        file2.read()
        file2.writelines(file_lines)
        

执行结果如下:(和图一是一样的)
这一结果表示了w+既可以读还可以写


1

with open(line,"w") as file2:
        pass
#或者
with open(line,"w+") as file2:
        pass

执行结果如下:
结果就是啥也没有,因为w和w+在打开文件的时候就会先把文件清空,如果你只打开而不写的话文件中的东西就会被删除。


python中文件读取中w,w+之间的区别_第2张图片
3

你可能感兴趣的:(python中文件读取中w,w+之间的区别)