笨办法学python 文本复制

本来面目

from sys import argv
from os.path import exists

script, from_file, to_file = argv

print(f"Copying from {from_file} to {to_file}")

#we could do these two on noe line, how?
in_file =open(from_file)
indata = in_file.read()

print(f"The input file is {len(indata)} bytes long")
print("Ready, hit the RETURN to countinue, 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()

第一次简化

in_file =open(from_file)
indata = in_file.read()

合为 indata = open(from_file).read()

from sys import argv
from os.path import exists

script, from_file, to_file = argv

print(f"Copying from {from_file} to {to_file}")

#we could do these two on noe line, how?
indata = open(from_file).read()

print(f"The input file is {len(indata)} bytes long")
print("Ready, hit the RETURN to countinue, CTRL_c to abort")
input()

out_file = open(to_file,'w')
out_file.write(indata)
#open(to_file,'w').write(open(from_file).read())
print("Alright, all done.")

out_file.close()
in_file.close()

会报错,因为写了 indata = open(from_file).read() 就无序写关闭语句in_file.close()
以为其中的read一旦运行,文件就会被Python关闭掉

from sys import argv
from os.path import exists

script, from_file, to_file = argv

print(f"Copying from {from_file} to {to_file}")

#we could do these two on noe line, how?
indata = open(from_file).read()

print(f"The input file is {len(indata)} bytes long")
print("Ready, hit the RETURN to countinue, CTRL_c to abort")
input()

out_file = open(to_file,'w')
out_file.write(indata)
#open(to_file,'w').write(open(from_file).read())
print("Alright, all done.")

out_file.close()

改成一句话


from sys import argv
from os.path import exists

script, from_file, to_file = argv

open(to_file,'w').write(open(from_file).read())

猜你喜欢

转载自www.cnblogs.com/junkdog/p/10125237.html