为什么我的找补刀txt结尾文件

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学,你好。同学可以尝试着将如图所示的内容print打印出来:

http://img1.sycdn.imooc.com//climg/5ed619d509b550e008230055.jpg

判断他们的值是什么,根据此做出修改。

如果还是有问题,可将代码截图到问答区,方便老师快速定位问题,为同学解答。

祝学习愉快~

  • 慕娘4151665 提问者 #1
    尝试过了,问题出现在前面的路径不是文件,加了not可以正常备份, if not os.path.isfile(file_name) and os.path.splitext(full_path)[-1].lower() == '.txt' 做了这样的修改,是因为我创建的.txt文件有问题导致的么
    2020-06-02 19:14:47
  • 好帮手慕笑蓉 回复 提问者 慕娘4151665 #2
    同学,你好。和创建的.txt文件没有关系,问题确实是出现再(file_name)参数,因为它只是文件名,不是文件路径,因此无法判断成功,同学将file_name改为文件路径,即full_path即可。 祝学习愉快~
    2020-06-03 09:46:25
好帮手慕笑蓉 2020-06-02 17:35:03

同学,你好。因为if判断语句里的文件路径有误,需要进行如下更改:

http://img1.sycdn.imooc.com//climg/5ed61cef09b48d2811290073.jpg

此外,还有以下一处需要修改,如:

http://img1.sycdn.imooc.com//climg/5ed61d3b09fba2cc06600105.jpg

如果解决了你的疑惑,请采纳,祝学习愉快~ 

提问者 慕娘4151665 2020-06-02 17:12:30

import os
import os.path


class FileBakup():
   def __init__(self, src, dist):
       '''

       :param src:原本路径
       :param dict:要备份到的路径
       '''
       self.src = src
       self.dist = dist

   def read_file(self):
       ls = os.listdir(self.src)
       print(ls)
       for l in ls:
           # 循环处理每个文件/文件夹
           self.backup_file(l)

   def backup_file(self, file_name):
       '''

       :param file_name: 文件/文件夹名
       :return:
       '''
       # 1判断dict是否存在,不存在创建文件夹
       if not os.path.exists(self.dist):
           os.makedirs(self.dist)
           print('目录不存在,创建成功')
       # 2判断文件是否为我们需要备份的文件
       # 拼接文件的完整路径
       full_path = os.path.join(self.src, file_name)
       full_dist_path=os.path
       # 先判断是否为文件夹,然后借助文件后缀名进行判断
       if os.path.isfile(file_name) and os.path.splitext(full_path)[-1].lower() == '.txt':
           print(full_path)
           # 3读取文件内容
           with open(full_dist_path,'w',encoding='utf-8') as f_dist:
               print('--开始备份{}'.format(file_name))
               with open(full_path,'r',encoding='utf-8') as f_src:
                   while True:
                       rest=f_src.read(100)
                       if not rest:
                           break
                       # 4写入文件内容
                       f_dist.write(rest)
                   f_dist.flush()
               print('--结束备份{}'.format(file_name))
       else:
           print('指定的目录不存在,创建完成')


if __name__ == '__main__':
   # src_path='G:\\python就业练习与习题\\Python零基础入门\\python初识面向对象\\面向对象的应用.异常处理,文件备份\\src'#文件目录
   # dict_path='G:\\python就业练习与习题\\Python零基础入门\\python初识面向对象\\面向对象的应用.异常处理,文件备份\\dist'#备份目录
   # 当前代码的目录名称
   base_path = os.path.dirname(os.path.abspath(__file__))  # 文件目录
   src_path = os.path.join(base_path, 'src')
   print(src_path)
   dict_path = os.path.join(base_path, 'dist')  # 备份目录
   print(dict_path)
   bak = FileBakup(src_path, dict_path)
   bak.read_file()

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师