2021年3月18日日知录

2021-03-18  本文已影响0人  爱生活的越仔

今日精进

出差返回徐州,今天中午在淮安市洪泽区蒋坝镇午餐,由于本人控制饮食,虽然这边是生产螺丝之地,并没有尝试,还是选择清淡的淮扬菜。

总结一下之前学的一些编程知识

实例分析1:拷贝文件

原文链接

部分解释

拷贝给定的文本文件到另一个给定的文本文件。

#文件名称比如为copyfile.py
#!/usr/bin/env python3
import sys
#sys.argv[ ]是一个列表,里边的项为用户输入的参数。sys.argv[1]是第二个参数,sys.argv[2]是第三个参数。
if len(sys.argv) < 3:#判断运行Python文件时命令行输入的参数个数是否正确
    print("Wrong parameter")
    print("./copyfile.py file1 file2")#将file1文件中的内容复制到file2中
    sys.exit(1)
f1 = open(sys.argv[1])
s = f1.read()
#调用文件处理中的read函数 将.txt中的内容读入s变量中
f1.close()
f2 = open(sys.argv[2], 'w')
#将s 即之前从.txt中读入的数据,write写入f2中
f2.write(s)
f2.close()

使用了新模块sys

sys.argv 包含所有命令行参数。 这个程序的功能完全可以使用 shell 的 cp 命令替代: 在 cp 后首先输入被拷贝的文件的文件名,然后输入新文件名。

#文件名比如argvtest.py
#!/usr/bin/env python3
import sys
print("First value", sys.argv[0])
print("All values")
for i, x  in enumerate(sys.argv):
    print(i, x)

实例2:文本文件相关信息统计

原文链接

#文件名比如parsefile.py
#!/usr/bin/env python3
import os
import sys
def parse_file(path):
    """
        分析给定文本文件,返回其空格、制表符、行的相关信息

        :arg path: 要分析的文本文件的路径

        :return: 包含空格数、制表符数、行数的元组
    """
    fd = open(path)
    i = 0
    spaces = 0
    tabs = 0
    for i,line in enumerate(fd):
        spaces += line.count(' ')
        tabs += line.count('\t')
    fd.close()
    # 以元组形式返回结果
    return spaces,tabs,i + 1
def main(path):
    """
        函数用于打印文件分析结果

        :arg path: 要分析的文本文件的路径
        :return: 若文件存在则为 True,否则 False
    """
    if os.path.exists(path):
        spaces,tabs,lines = parse_file(path)
        print("Spaces {}.tabs {}.lines {}".format(spaces,tabs,lines))
        return True
    else:
        return False
if __name__=='__main__':
    if len(sys.argv) > 1:
        main(sys.argv[1])
    else:
        sys.exit(-1)
    sys.exit(0)

程序有两个函数 ,main() 和 parse_file() ,parse_file 函数真正的分析文件并返回结果,然后在 main() 函数里打印结果。通过分割代码到一些更小的单元(函数)里,能帮助我们组织代码库并且也更容易为函数编写测试用例。

上一篇下一篇

猜你喜欢

热点阅读