Python初识文本基本操作

初识文本的基本操作

怎么在文件里面写内容和都内容

文件操作过程

1,找到文件

   文件路径

2,打开文件

   file_obj=file(文件路径,模式)

3,文件操作,读写文件

   file_obj.read()  #将所有读入内存

   file_obj.readlines() #将所有读入内存然后按照一行行隔开,会得到一个一行为单位的列表

   for line in file_obj:

  #每次循环,只读一行。避免全部读入内存

  file_obj.write()  #写

  file_obj.writeline() #一行行写

4,关闭文件

  file_obj.close()

file_obj = file ("文件路径","模式")

打开文件的模式有:

.r,以只读方式打开文件

.w,打开一个文件只用于写入

.a,打开一个文件用于追加

.rw 打开一个文件用于读写

 

操作

新建一个log.txt 内容如下

alex;123;1
eric;456;2
新建一个脚本file_test.py

#!/usr/bin/python
# -*- coding:utf-8 -*-
file_obj = file('/server/scripts/log.txt','r')
print file_obj.read()
file_obj.close()

执行 全部读取出来了

python file_test.py
alex;123;1
eric;456;2
把read修改成readlines然后执行 按照列表方式读取出来

python file_test.py
['alex;123;1\n', 'eric;456;2\n']

修改代码

#!/usr/bin/python
# -*- coding:utf-8 -*-
file_obj = file('/server/scripts/log.txt','r+')
#print file_obj.read()
#print file_obj.readlines()
line_list = file_obj.readlines()
my_list = []
for ele in line_list:
        line = ele.strip()
        #ele为字符串'alex;123;1\n'去掉尾部的换行 line='alex;123;1'
        value_list = line.split(';')
        #使用;作为分隔符生成一个列表value_list为='alex','123','1']
        last_value = int(value_list[-1])
        #把尾部字符1转换成数值赋值给last_value
        last_value += 1
        #last_value自增1为2
        value_list[-1] = str(last_value)
        #把自增数值为2在抓换成字符赋值给最后一位value_list=['alex','123','2']
        value_str = ';'.join(value_list)
        #使用;作为连接符把列表转换成字符串value_str='alex;123;2'
        my_list.append(value_str)
        #空的列表赋值my_list=['alex;123;2']一个元素为alex;123;2
my_str = '\n'.join(my_list)
        #使用换行符\n作为连接符号拆分列表,前面执行过两次循环了my_list=['alex;123;2','eric;456;3']
        #拆分以后变成字符串才能写入到文件my_str='alex;123;2\neric;456;3'
file_obj.write(my_str)
        #把my_str字符串写入到文件log.txt
file_obj.flush()
file_obj.close()

执行

python file_test.py
屏幕没有输出但是文件log.txt内容变了(把最后一行数值加1追加到尾部)
alex;123;1
eric;456;2
alex;123;2
eric;456;3

 

posted @ 2017-04-12 17:23  minseo  阅读(281)  评论(0编辑  收藏  举报