这是代码
from sys import argv
script,from_file, to_file = argv
open(to_file,'w').write(open(from_file).read())
Run Code Online (Sandbox Code Playgroud)
我是python的新手,我正在努力学习Python,对于一个问题的额外功劳,它说这本书的作者能够将代码排成一行,所以我设法将其归结为3行,但我卡住了.
关心帮忙?
哦,代码将一个文件的内容复制到另一个文件,或者它的意思是.那是我的目标.
可以将其作为一个表达式执行,即不需要分号:
__import__('shutil').copy(__import__('sys').argv[1], __import__('sys').argv[2])
Run Code Online (Sandbox Code Playgroud)
要么
open(__import__('sys').argv[2], "w").write(open(__import__('sys').argv[1]).read())
Run Code Online (Sandbox Code Playgroud)
当然,没有一个心智正常的人会更喜欢你的示例代码.我要做的唯一改变是没有理由将文件名分配给临时变量:
from sys import argv
open(argv[1],'w').write(open(argv[2]).read())
Run Code Online (Sandbox Code Playgroud)
更Pythonic的写作方式是:
import sys
with open(sys.argv[1]) as src, open(sys.argv[2]) as dest:
for line in src:
dest.write(line)
Run Code Online (Sandbox Code Playgroud)
然后你就可以开始argparse使命令行阅读更加健壮......
您可以使用分号将import语句保留在同一行.并直接引用argv中的项而不是使用变量.
from sys import argv; open(argv[2],'w').write(open(argv[1]).read())
Run Code Online (Sandbox Code Playgroud)