美文网首页Learn to Code
《笨办法学Python3》练习十七:更多文件操作

《笨办法学Python3》练习十七:更多文件操作

作者: 雨开Ame | 来源:发表于2019-03-02 15:16 被阅读0次

    练习代码

    from sys import argv
    from os.path import exists
    
    script, from_file, to_file = argv
    
    print("Copying from {from_file} to {to_file}.")
    
    # we could do these two on one line, how?
    in_file = open(from_file)
    indata = in_file.read()
    
    print(f"The input file is {len(indata)} bytes long.")
    
    print(f"Does the output file exist? {exists(to_file)}.")
    print("Ready, hit RETURN to continue, CTRL-C to abort.")
    input()
    
    out_file = open(to_file, 'w')
    out_file.write(indata)
    
    print("Alright, all done.")
    
    out_file.close()
    in_file.close()
    

    Study Drills

    1. This script is really annoying. There’s no need to ask you before doing the copy, and it prints too much out to the screen. Try to make the script more friendly to use by removing features.

    2. See how short you can make the script. I could make this one line long.

    one line code

    from sys import argv
    open(argv[2], 'w').write(open(argv[1]).read())
    
    1. Notice at the end of the What You Should See section I used something called cat? It’s an
      old command that concatenates files together, but mostly it’s just an easy way to print a file to
      the screen. Type man cat to read about it.

    cat 命令

    1. Find out why you had to write out_file.close() in the code.

    ...If you don’t explicitly close a file, Python’s garbage collector will eventually destroy the object and close the open file for you, but the file may stay open for a while. Another risk is that different Python implementations will do this clean-up at different times...(摘自官方文档)

    还有一个更常用的办法,且不用手动close

    # 使用 with 语句打开文件,with语句执行完毕后自动close
    with open(filename) as f:
        content = f.read()
    f.closed # True
    
    1. Go read up on Python’s import statement, and start python3.6 to try it out. Try importing
      some things and see if you can get it right. It’s alright if you do not.

    相关文章

      网友评论

        本文标题:《笨办法学Python3》练习十七:更多文件操作

        本文链接:https://www.haomeiwen.com/subject/vcgeuqtx.html