寫這個作業碰到一個問題,就是開始寫入文件時,文件流沒有關閉,導致后來read一直為null,特此記錄
# -*- coding: utf-8 -*-
# @Time : 2021/7/17 15:47
# @Author :liuw
# @File : try_catch_file.py
# @Software: PyCharm
import os
import shutil
import time
'''
作業:
1.應用文件操作的相關知識,通過python新建一個古詩.txt,選擇一首古詩寫入文件中
2.另外寫一個函數,讀取指定文件古詩.txt,將內容復制到copy.txt,並在控制台輸出"復制完畢"
3.提示 分別定義2個函數,完成讀文件和寫文件的操作
盡可能完善代碼,添加異常處理
'''
list=['床前明月光','疑是地上霜','舉頭望明月','低頭思故鄉']
project_path='C:\\Users\\15012\\PycharmProjects\\pythonProject\\spider_from_bili_ITsishu\\'
'''
讀取指定文件,並復制到copy.txt
'''
def readFile(read_flag):
# 1、使用讀寫文件進行復制文件
file = open('file.txt',
'r', encoding="utf-8")
for i in range(0,4):
read_print = file.readline()
print("讀取行 %s" % (read_print),end="")
time.sleep(1)
print("讀取完畢")
time.sleep(1)
read_flag += 1
return read_flag
file.close()
# f2 = open(newFile, 'w')
# f2.flush()
# for str2 in f1.readlines():
# print(str2)
# f2.write(str2)
#
# f1.close()
#
# if os.path.exists('copy.txt'): #指的是當前目錄
#
# print(u'文件復制成功')
#
# f2.close()
'''
將古詩中優美的詞句寫入到文件中
'''
def writeFile(file,list):
for str in list:
file.write(str+'\n')
print('古詩寫入完畢!')
time.sleep(1)
file.close() # 開始就是這里忘了關閉文件流了 對python還是不熟悉 也沒有對應的報錯 不像Java
def copy(copy_flag): #文件復制
f = open("file.txt","r",encoding='utf-8')
c = open("copy.txt", "w", encoding='utf-8')
lines = f.readlines()
for line in lines:
print('copy'+line,end="")
c.write(line)
f.close()
c.close()
print("\n復制完畢\n")
time.sleep(1)
copy_flag += 1
return copy_flag
if os.path.isfile(project_path+'file.txt'):
os.remove('file.txt')
try:
read_flag = 0
copy_flag = 0
file = open(project_path+'file.txt',
'a',encoding="utf-8")
writeFile(file,list)
try:
read_flag = readFile(read_flag)
if read_flag == 0:
print("讀出失敗")
time.sleep(1)
copy_flag = copy(copy_flag)
if copy_flag == 0:
print("復制失敗")
time.sleep(1)
finally:
file.close()
print("程序執行完畢")
time.sleep(1)
except Exception as result:
print(result)
print("程序異常")
time.sleep(1)
# shutil.copyfile('file.txt', 'copy.txt')
finally:
file.close()
# def text_create(name, msg):
# # 新創建的txt文件的存放路徑
# desktop_path = "C:\\Users\\15012\\Desktop\\"
#
# full_path = desktop_path + name + '.txt' # 也可以創建一個.doc的word文檔
#
# file = open(full_path, 'w')
#
# file.write(msg) #msg也就是下面的Hello world!
#
# # file.close()
#
# text_create('mytxtfile', 'Hello world!')
# 調用函數創建一個名為mytxtfile的.txt文件,並向其寫入Hello world!