老师可以帮忙检查一下代码吗?

来源:1-4 文件的创建与写入(下)

K26383477

2021-08-28 09:40:55

# coding:utf-8

import os

def create_package(path):
   if os.path.exists(path):
       raise Exception('%s 这个文件已存在不能创建' % path)
os.makedirs(path)
init_path = os.path.join(path, '__inint__.py')
f = open(init_path, 'w')
f.write('# coding:utf-8\n')
f.close()

if __name__ == '__main__':
   current_path = os.getcwd()
path = os.path.join(current_path, 'text1')
create_package(path)

class Open(object):
   def __init__(self, path, mode='w', is_return=True):
       self.path = path
       self.mode = mode
       self.is_return = is_return

   def write(self, message):
       f = open(self.path, mode=self.mode)
if self.is_return:
           if not message.endswith('\n'):
               message = '%s\n' % message
       try:
           f.write(message)
except Exception as e:
           print(e)
finally:
           f.close()


if __name__ =='__main__':
   current_path = os.getcwd()
# path = os.path.join(current_path, 'text1')
   # create_package(path)
   open_path = os.path.join(current_path, 'b.txt')
o = Open(open_path)
o.write('你好 小慕')

判断message后面是否有  \n  可以用  


if not message.endswith('\n'):
message = '%s\n' % message

    ​    ​这样写对吗?  不用判断 else会出问题吗?  或者继续用异常捕获这个语法呢?

不知道如果存在 \n 我这样写会不会出问题!

写回答

1回答

好帮手慕燕燕

2021-08-28

同学,你好!同学思维清晰,判断message写法没有问题,关于程序的问题及建议如下:

1、一个Python文件中只能写一个if __name__ == "__main__"语句,可将代码放到两个Python文件中,或执行过程中注释掉一部分

2、创建python包,init拼写错误

http://img.mukewang.com/climg/61299cb109160bdf06190191.jpg

3、写入到b.txt中的内容最后包含一行空行,if not message.endswith('\n')写法没有问题,如果message不是以\n结尾,就执行if中的message = '%s\n' % message语句,为message添加\n结尾

http://img.mukewang.com/climg/61299e4c097cce4c03260081.jpg

4、如果message本身是以\n结尾的,那就不会执行if not message.endswith('\n')语句,直接执行f.write(message),写入到b.txt中的内容最后一行也会空行,因此这里不用else是可以的,不会出问题,文件写入使用try捕获异常写法正确

5、建议同学在编写代码过程中适当的添加注释,养成良好的编程习惯

祝:学习愉快!


1

0 学习 · 4469 问题

查看课程