python open文件后每行切片_python中文件的处理和列表切片的一点理解

今天上完课就一直在捣鼓python的文件处理问题,现在已经11点了(这几天都没有去陪我女朋友在这里跟她说声抱歉),给大家做一点分享。

不知道大家对python中的文件处理是怎么想的,给大家看一串代码:

In [4]: f=open(r'C:\Users\13016\Desktop\python\a.txt','a+')

In [5]: f.read()

Out[5]: ''

In [6]: f.tell()

Out[6]: 112

In [7]: f.seek(0,0)

Out[7]: 0

In [8]: f.read()

Out[8]: '你好\n世界\n这个文本用来测试我对列表和切片的理解,为文件的处理打好基础\n哈哈哈哈\n我是一个小画家\n你是一个小画家'

In [9]: f.tell()

Out[9]: 112

In [10]: f.read()

Out[10]: ''

代码的下面是我的文本。下面给大家一行行分析:

1f=open(r'C:\Users\13016\Desktop\python\a.txt','a+')

这行代码的意思其实就是用open()方法打开我的路径中的一个txt文件,用什么方法打开的呢? 用的是“a+”的方法,a+的意思就是,用追加的方式在已有的文本后面追加字符串,而且+的表示,能够使得这种写法,也能够进行读取操作,但是最烦人vde一点就是,以a+的方式读取之后,它的光标是会移动到已有字符串的最后的。大家可以看见我上面的IN【5】,它输出的内容是“”,也就表示啥都没有。这就是因为光标移动到最后一个字符串末尾的原因。

我们可以用tell()方法来看看现在的光标的位置,f.tell()之后大家可以看见,我现在所占用的字节数是112个。 大家应该知道在python中中文字符每个占2个字节。 不难推算我的txt文档的最后刚好有112个字节。 那么怎样将光标从最后移动到前面呢? 这时候就要用到seek这个方法。 seek(1,2) 它有两个参数,一是参数1,表示的偏移量,一个是参数2,当参数2等于0时,为手个字符的光标,1为当前的光标,2为最后一个字符的光标。 所以f.seek(0,0),就可以将光标移到最前。此时,再进行read()。 可以看见,我文本中的内容时可以被读取出来的。 还有一些细节问题,大家可以再下面评论。

再来看看python中的列表切片问题。还是老套路,先上代码:

In [28]: for i in open(r'C:\Users\13016\Desktop\python\a.txt'):

...: print(i)

你好

世界

这个文本用来测试我对列表和切片的理解,为文件的处理打好基础

哈哈哈哈

我是一个小画家

你是一个小画家

In [29]: i[0]

Out[29]: '你'

In [30]: i[1]

Out[30]: '是'

In [50]: h=f.read()

In [51]: print(h)

你好

世界

这个文本用来测试我对列表和切片的理解,为文件的处理打好基础

哈哈哈哈

我是一个小画家

你是一个小画家

In [52]: m=h.spilt()

In [54]: print(m)

['你好', '世界', '这个文本用来测试我对列表和切片的理解,为文件的处理打好基础', '哈哈哈哈', '我是一个小画家', '你是一个小画家']

In [55]: b='\n'.join(m)

In [56]: print(b)

你好

世界

这个文本用来测试我对列表和切片的理解,为文件的处理打好基础

哈哈哈哈

我是一个小画家

你是一个小画家

In [57]: m[0]

Out[57]: '你好'

In [58]: m[1]

Out[58]: '世界'

In [59]: m[0:3]

Out[59]: ['你好', '世界', '这个文本用来测试我对列表和切片的理解,为文件的处理打好基础']

In [60]: m.append("我去牛皮")

In [61]: print(m)

['你好', '世界', '这个文本用来测试我对列表和切片的理解,为文件的处理打好基础', '哈哈哈哈', '我是一个小画家', '你是一个小画家', '我去牛皮']

上面这段代码,能够交给大家很多东西,下面我就稍微说一下:for i in “python” 语句之后,输入的print(i)实际上是一个str类型的,所以现在并不能对其进行切片操作,如果操作i[0],可以看见为最后一行的第一个。

所以为了解决这个问题,可以使用split()方法。要将它转为列表类型要使用split()方法。

将list类型转化为str类型的话使用,join()方法。

append()可以在列表最后进行添加元素

5.extend()可以在最后添加列表

大家有不懂得就直接评论一波,很晚了,要睡了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值