鱼C论坛

 找回密码
 立即注册
查看: 1317|回复: 0

[技术交流] 通过python文件的进一步查看与修改

[复制链接]
发表于 2017-7-24 16:12:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

为了对文件操作有进一步的了解和运用,我把之前的‘wing.txt’文件修改了一下,每一行都赋予了主语,分别是李雷和韩梅梅的交叉演唱。
这里,我想通过之前的split()函数,把文件中的主语和演唱内容分开,并加入一些东西
首先,对于split()BIF来说,其返回值是一个字符串列表,可以将其赋值到一个目标标识符列表
  1. >>> string = 'they say : we do not talk any more'
  2. >>> (role,content) = string.split(':')
  3. >>> print(role)
  4. they say
  5. >>> print(content)
  6. we do not talk any more

复制代码

当我们需要得到split()切割完之后的数据,可以通过上面的多重赋值得到
现在来操作这个文件
  1. >>> data = open('wing.txt')
  2. >>> for each_line in data:
  3.         (role,line_spoken) = each_line.split(':')
  4.         print(role,end=' ')
  5.         print('需要唱',end=' ')
  6.         print(line_spoken,end=' ')

  7.         
  8. 李雷 需要唱 同样的机场 不同世界
  9. 韩梅梅 需要唱 同样的咖啡 不同味觉
  10. 李雷 需要唱 同样的我 和我都少了一些
  11. 韩梅梅 需要唱 看飞机划过天空不 见了
  12. 李雷 需要唱 用你给我的翅膀飞
  13. 韩梅梅 需要唱 我懂这不是伤悲
  14. 李雷 需要唱 再高都不会累
  15. 韩梅梅 需要唱 我们都说好了
  16. 李雷 需要唱 用你给我的翅膀飞
  17. 韩梅梅 需要唱 我感觉己够安慰
  18. 李雷 需要唱 乌云也不再多
  19. Traceback (most recent call last):
  20.   File "<pyshell#44>", line 2, in <module>
  21.     (role,line_spoken) = each_line.split(':')
  22. ValueError: too many values to unpack (expected 2)
复制代码


通过for进行迭代访问,可以看到文件内的‘:’全变成了‘需要唱’,感觉还不错,但是为什么最后却是会报错了呢
打开文件我才发现,原来,我把两行东西放在一行了,导致有一行出现了两个‘:’,按道理来说这一行被切割后,就变成了三部分,但是我们却只有两个赋值,所以产生了矛盾,那应该怎么改呢。
通过之前学习的split()可以知道,对split来说,其括号内的参数是可控的,我们通过修改其参数,来使其对不该分开的数据不产生作用。
  1. >>> data = open('wing.txt')
  2. >>> for each_line in data:
  3.         (role,line_spoken) = each_line.split(':',1)
  4.         print(role,end=' ')
  5.         print('需要唱',end=' ')
  6.         print(line_spoken,end=' ')

  7.         
  8. 李雷 需要唱 同样的机场 不同世界
  9. 韩梅梅 需要唱 同样的咖啡 不同味觉
  10. 李雷 需要唱 同样的我 和我都少了一些
  11. 韩梅梅 需要唱 看飞机划过天空不 见了
  12. 李雷 需要唱 用你给我的翅膀飞
  13. 韩梅梅 需要唱 我懂这不是伤悲
  14. 李雷 需要唱 再高都不会累
  15. 韩梅梅 需要唱 我们都说好了
  16. 李雷 需要唱 用你给我的翅膀飞
  17. 韩梅梅 需要唱 我感觉己够安慰
  18. 李雷 需要唱 乌云也不再多
  19. 韩梅梅 需要唱 我们也不为谁掉眼泪,李雷:空气中藏著 你的香味
  20. 韩梅梅 需要唱 回忆里躲著 你的眼泪
  21. 李雷 需要唱 最后拥抱的温暖 还有一些
  22. 韩梅梅 需要唱 我拖著行李往前一 直走
  23. 李雷 需要唱 用你给我的翅膀飞
  24. 韩梅梅 需要唱 我懂这不是伤悲
  25. 李雷 需要唱 再高都不会累
  26. 韩梅梅 需要唱 我们都说好了
  27. 李雷 需要唱 用你给我的翅膀飞
  28. 韩梅梅 需要唱 我感觉己够安慰
  29. 李雷 需要唱 乌云也不再多
  30. 韩梅梅 需要唱 我们也不为谁掉眼泪
复制代码




这里可以看到对split()进行参数控制,刚才的文件操作完全没有问题了。

评分

参与人数 1鱼币 +3 收起 理由
小甲鱼 + 3

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-24 07:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表