鱼C论坛

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

[技术交流] 《零基础入门学习Python》第29讲笔记:一个任务

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

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

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

x
  1. # 接受用户输入并保存为新的文件

  2. def file_write(file_name):
  3.     f = open(file_name,'w')
  4.     print("请输入内容【单独输入\':w\'将保存退出】:")

  5.     while True:
  6.         write_some = input()
  7.         if write_some != ':w':
  8.             f.write('%s\n' % write_some)
  9.         else:
  10.             break

  11.     f.close()

  12. temp = input('请输入文件名:')
  13. file_name = str(temp)+'.txt'
  14. file_write(file_name)
复制代码

  1. # 对两个文件找不同

  2. def file_compare(file1, file2):
  3.     f1 = open(file1)
  4.     f2 = open(file2)
  5.     count = 0 # 统计行数
  6.     differ = [] # 统计不一样的数量

  7.     for line1 in f1:
  8.         line2 = f2.readline()  # 一次读一行
  9.         count += 1
  10.         if line1 != line2:
  11.             differ.append(count)

  12.     f1.close()
  13.     f2.close()
  14.     return differ

  15. file1 = input('请输入需要比较的头一个文件名:')
  16. file2 = input('请输入需要比较的另一个文件名:')

  17. differ = file_compare(file1, file2)

  18. if len(differ) == 0:
  19.     print('两个文件完全一样!')
  20. else:
  21.     print('两个文件共有【%d】处不同:' % len(differ))
  22.     for each in differ:
  23.         print('第 %d 行不一样' % each)
复制代码

  1. # 输出用户要求的前N行内容

  2. def file_view(file_name, line_num):
  3.     print('\n文件%s的前%s的内容如下:\n' % (file_name, line_num))
  4.     f = open(file_name)
  5.     for i in range(int(line_num)):   # 打印前N行
  6.         print(f.readline(), end= '')

  7.     f.close()

  8. file_name = input(r'请输入要打开的文件(C:\\test.txt):')
  9. line_num = input('请输入需要显示该文件前几行:')
  10. file_view(file_name, line_num)
复制代码

  1. # 输出用户要求的指定行的内容

  2. def file_view(file_name, line_num):
  3.     if line_num.strip() == ':':   # 删去左右的空格,判断:若只有‘:’
  4.         begin = '1'
  5.         end = '-1'
  6.         
  7.     (begin, end) = line_num.split(':')  # 获得前后俩数字

  8.     if begin == '':
  9.         begin = '1'
  10.     if end == '':
  11.         end = '-1'

  12.     if begin == '1' and end == '-1':
  13.         prompt = '的全文'
  14.     elif begin == '1':
  15.         prompt = '从开始到%s' % end
  16.     elif end == '-1':
  17.         prompt = '从%s到结束' % begin
  18.     else:
  19.         prompt = '从第%s行到第%s行' % (begin, end)

  20.     print('\n文件%s%s的内容如下:\n' % (file_name, prompt))

  21.     begin = int(begin) - 1
  22.     end = int(end)
  23.     lines = end - begin

  24.     f = open(file_name)  
  25.    
  26.     for i in range(begin):  # 用于消耗掉begin之前的内容
  27.         f.readline()

  28.     if lines < 0:
  29.         print(f.read())
  30.     else:
  31.         for j in range(lines):
  32.             print(f.readline(), end='')
  33.    
  34.     f.close()

  35. file_name = input(r'请输入要打开的文件(C:\\test.txt):')
  36. line_num = input('请输入需要显示的行数【格式如 13:21 或 :21 或 21: 或 : 】:')
  37. file_view(file_name, line_num)
复制代码

  1. # 替换文本的内容

  2. def file_replace(file_name, rep_word, new_word):
  3.     f_read = open(file_name)

  4.     content = []    # 替换后内容
  5.     count = 0       # 替换个数

  6.     for eachline in f_read:
  7.         if rep_word in eachline:
  8.             count += eachline.count(rep_word)  # count感觉应该用这个,获取须替换的词汇数目,此处应累加!
  9.             eachline = eachline.replace(rep_word, new_word)  # 替换操作
  10.         content.append(eachline)       #  记录替换后的内容

  11.     decide = input('\n文件 %s 中共有%s个【%s】\n您确定要把所有的【%s】替换为【%s】吗?\n【YES/NO】:' \
  12.                    % (file_name, count, rep_word, rep_word, new_word))

  13.     if decide in ['YES', 'Yes', 'yes', 'y', 'Y']:
  14.         f_write = open(file_name, 'w')   # 命名技巧
  15.         f_write.writelines(content)
  16.         f_write.close()

  17.     f_read.close()


  18. file_name = input('请输入文件名:')
  19. rep_word = input('请输入需要替换的单词或字符:')
  20. new_word = input('请输入新的单词或字符:')
  21. file_replace(file_name, rep_word, new_word)
复制代码





评分

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

查看全部评分

本帖被以下淘专辑推荐:

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 22:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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