最近看小甲魚視頻,學到了文件切割方面的知識,尤其是split的用法,中間也出現了許多的問題
問題一:文件導入,路徑一定要記得要用雙\或者/,否則會出現:
OSError: [Errno 22] Invalid argument: 'E:\桌面\Python\record\record.txt’
型錯誤。
問題二:文件切割,一定要仔細而又細心檢查自己的txt文件,標點中的‘:’一定要保持一致,換行也要記得
否則會出現
ValueError: not enough values to unpack (expected 2, got 1)
型錯誤。
下面具體內容:
轉載
題目:
將txt文件中的小客服與小甲魚的對話進行切割,並以========爲界限,將其分爲幾個文件,將對話內容存儲與不同的文件,具體的可以去找找原題目。
以下是解題代碼:
f = open('E:\\桌面\\Python\\record\\record1.txt')
#導入文件,可以雙斜槓\\或者反斜槓/
boy = []
girl = []
#創建空列表,後續處理
count = 1
#初始化段落
for each_line in f:
if each_line[:6] != '======':
#循環切割。
(role,words) = each_line.split(':',1) #split函數切割,兩個參數(切割對象(以什麼來切割),切割成幾部分)
if role == '小甲魚':
boy.append(words)
else:
girl.append(words)
else:
boy_file_name = 'boy_' + str(count) + '.txt'
girl_file_name = 'girl_' + str(count) + '.txt'
#重命名
boy_file = open(boy_file_name, 'w')
girl_file = open(girl_file_name, 'w')
boy_file.writelines(boy)
girl_file.writelines(girl)
#創建新文件,並寫入
boy_file.close()
girl_file.close()
#關閉txt文件
boy = []
girl = []
#初始化空列表
count += 1
#計數器+1
f.close()
#關閉
可能我們會遇到這種錯誤:ValueError: not enough values to unpack (expected 2, got 1)
我找了很多資料,很多資料提示是txt文件中的‘:’沒有用英文,但其實是源文件txt的內容問題,建議仔細仔細看txt文件內容。
改進後的代碼(函數化)爲
def save_file(name1,name2,count):
file_name_boy='name1'+str(count)+'.txt' #這裏我想命名爲函數導入過來的名字卻未能實現,很難受
file_name_girl='mame2'+str(count)+'.txt'
boy_file=open(file_name_boy,'w')
girl_file=open(file_name_girl,'w')
boy_file.writelines(name1)
girl_file.writelines(name2)
boy_file.close()
girl_file.close()
def split_file(file_name):
f=open(file_name)
boy=[]
girl=[]
count=1
for each_line in f: #進行分割操作
if each_line[:6] != '======':
(role,line_spoken)=each_line.split(':',1)
if role=='小甲魚':
boy.append(line_spoken)
if role=='小客服':
girl.append(line_spoken)
else:
save_file(boy,girl,count)
count+=1
f.close()
split_file('record1.txt')
這裏有一個東西想實現卻沒能實現,就是函數名字的傳入更改,再想想吧!
txt文件內容如下:
小客服:小甲魚,今天有客戶問你有沒有女朋友?
小甲魚:咦??
小客服:我跟她說你有女朋友了!
小甲魚:。。。。。。
小客服:她讓你分手後考慮下她!然後我說:"您要買個優盤,我就幫您留意下~"
小甲魚:然後呢?
小客服:她買了兩個,說發一個貨就好~
小甲魚:呃。。。。。。你真牛!
小客服:那是,誰讓我是魚C最可愛小客服嘛~
小甲魚:下次有人想調戲你我不阻止~
小客服:滾!!!
===========================================================
小客服:小甲魚,有個好評很好笑哈。
小甲魚:哦?
小客服:"有了小甲魚,以後媽媽再也不用擔心我的學習了~"
小甲魚:哈哈哈,我看到丫,我還發微博了呢~
小客服:嗯嗯,我看了你的微博丫~
小甲魚:喲西~
小客服:那個有條回覆“左手拿著小甲魚,右手拿著打火機,哪裡不會點哪裡,so easy ^_^”
小甲魚:T_T
===========================================================
小客服:小甲魚,今天一個會員想找你
小甲魚:哦?什麼事?
小客服:他說你一個學生月薪已經超過12k了!!
小甲魚:哪裏的?
小客服:上海的
小甲魚:那正常,哪家公司?
小客服:他沒說呀。
小甲魚:哦
小客服:老大,爲什麼我工資那麼低啊??是時候漲漲工資了!!
小甲魚:啊,你說什麼?我在外邊呢,這裏好吵吖。。。。。。
小客服:滾!!!
===========================================================**
這個文檔中的文件可以分割。。。,但是這個爲什麼不行呢???
小客服:小甲魚,今天有客戶問你有沒有女朋友?
小甲魚:咦??
小客服:我跟她說你有女朋友了!
小甲魚:..
小客服:她讓你分手後考慮下她!然後我說:"您要買個優盤,我就幫您留意下
小甲魚:然後呢?
小客服:她買了兩個,說發一個貨就好
小甲魚:呃。....你真牛!
小客服:那是,誰讓我是魚c最可愛小客服嘛小甲魚:下次有人想調戲你我不阻止
小客服:滾!!!
===========================================================
小客服:小甲魚,有個評論很好笑哈。
小甲魚:哦?
小客服:有了小甲魚,媽媽再也不用擔心我的學習了~
小甲魚:哈哈哈,我看到了,我還發微博了!
小客服:嗯嗯,我看到了你的微博。
小甲魚:喲西~
小客服:那條回覆有“左手拿着小甲魚,右手拿着打火機,哪裏不會點哪裏,so easy!
小甲魚:T_T
==========================================================
小客服:小甲魚,今天一個會員找你
小甲魚:哦,什麼事?
小客服:他說你一個學生月薪都超過12k了!!!
小甲魚:那裏的?
小客服:上海的。
小甲魚:那正常,那家公司呀?
小客服,他沒說呀。
小甲魚:哦
小客服:老大,爲什麼我工資那麼低呀???是時候漲工資了!!
小甲魚:啊,你說什麼呀?我在外邊呢,這裏好吵呀。。。。。
小客服:滾!!!==========================================================
你們可以仔細看看哪裏有問題,哈哈哈,反正我看到了,嘿嘿嘿
轉載於https://blog.csdn.net/liulinxs/article/details/99459879