1. 程式人生 > >笨辦法學python 文本復制

笨辦法學python 文本復制

exists pen 分享 turn 文本 info inf print The

本來面目

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())

技術分享圖片

笨辦法學python 文本復制