鱼C论坛

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

[技术交流] 零基础入门学Python 课时29 文件:一个任务

[复制链接]
发表于 2018-3-25 15:36:58 | 显示全部楼层 |阅读模式

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

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

x
  1. 动动手:
  2. 0.
  3. lines = []

  4. file_name = input('请输入文件名:')

  5. print("请输入内容(单独输入':w'保存退出):")
  6. words = input() + '\n'

  7. while words != ':w\n':
  8.    
  9.     line = lines.append(words)
  10.     words = input() + '\n'

  11. f = open('/Users/yufan/Documents/python编程/29/29dds0/%s' % file_name,'x',encoding = 'GBK')
  12. f.writelines(lines)
  13. f.close()

  14. 1.
  15. f1 = open('/Users/yufan/Documents/python编程/29/29dds1/余二娃',encoding = 'GBK')
  16. f2 = open('/Users/yufan/Documents/python编程/29/29dds1/余三娃',encoding = 'GBK')

  17. f1_string = []
  18. f2_string = []
  19. count = 0
  20. wrong_line = []

  21. for file_line in f1:
  22.     f1_string.append(file_line)

  23. for file_line in f2:
  24.     f2_string.append(file_line)

  25. small_len = len(f1_string) if len(f1_string) < len(f2_string) else len(f1_string)

  26. for each_index in range(small_len):
  27.     if f1_string[each_index] != f2_string[each_index]:
  28.         count += 1
  29.         wrong_line.append(count)
  30.     else:
  31.         count += 1

  32. print('两个文件一共有%d处不同:' % len(wrong_line))
  33. for each in wrong_line:
  34.     print('第 %d 行不一样' % each)

  35. f2.close()
  36. f1.close()
  37. 2.
  38. file_name = input('请输入你要打开的文件(/Users/yufan/Documents/python编程/29/29dds2)下:')
  39. row = int(input('请输入需要显示该文件的前几行:'))

  40. f = open('/Users/yufan/Documents/python编程/29/29dds2/%s' % file_name, encoding = 'GBK')

  41. L = list(f)
  42. n = 0
  43. while n < row:
  44.     print(L[n])
  45.     n += 1

  46. f.close()
  47. 3.
  48. file_name = input('请输入你要打开的文件(/Users/yufan/Documents/python编程/29/29dds2)下:')
  49. f = open('/Users/yufan/Documents/python编程/29/29dds2/%s' % file_name, encoding = 'GBK')
  50. L = list(f)
  51. string = []

  52. (start,end) = input('请输入需要显示该文件的行数(例如 13:21 或 :21 或 21:):').split(':',1)

  53. if start == '':
  54.     start = 1
  55. else:
  56.     start = int(start)
  57.         
  58. if end == '':
  59.     end = len(L)
  60. else:
  61.     end = int(end)
  62. while True:
  63.     if start > len(L) or start < 0 or end >len(L):
  64.         print('你输入的数字超出最大范围,请重新输入!')
  65.         (start,end) = input('请输入需要显示该文件的行数(例如 13:21 或 :21 或 21:):').split(':',1)
  66.         if start == '':
  67.             start = 1
  68.         else:
  69.             start = int(start)
  70.         if end == '':
  71.             end = len(L)
  72.         else:
  73.             end = int(end)
  74.     else:
  75.         break

  76. n = start

  77. while n <= end:
  78.     string.append((L[n - 1]))
  79.     n += 1

  80. if start != 0 and end != 0:
  81.     print('文件%s从第%d行到第%d行的内容如下:' % (file_name,start,end))
  82. elif start == 1 and end != 0:
  83.     print('文件%s从第开始到第%d行的内容如下:' % (file_name,end))
  84. elif end ==len(string) and start != 1:
  85.     print('文件%s从第%d行到末尾的内容如下:' % (file_name,start))
  86. else:
  87.     print('你在逗我,0到0行噢?')

  88. for each_line in string:
  89.     print(each_line)

  90. f.close()
复制代码

本帖被以下淘专辑推荐:

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 05:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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