你用这个试试。如果文件内容不对会提示出来,
如果中文是乱码,把 encoding='utf-8' 改成 encoding='gbk' 试试
import sys
def cut2(fpath, new_data_dir, nsrc='zh', ntgt='en'):
fp = open(fpath, 'r', encoding='utf-8')
src_fp = open(new_data_dir+'raw.'+nsrc, 'w', encoding='utf-8')
tgt_fp = open(new_data_dir+'raw.'+ntgt, 'w', encoding='utf-8')
for line in fp.readlines():
li = line.replace('\n', '').split('\t')
if len(li)!=2:
print("出错的行:",line)
continue
tgt_line = li[0]
src_line = li[1]
src_fp.write(src_line + '\n')
tgt_fp.write(tgt_line + '\n')
src_fp.close()
tgt_fp.close()
在 for line...的循环中,第一行加入print(line),输出看一下各行的内容,然后根据每行数据结构,再对其进行提取和保存。
这因为你文件内容中有的行中没有'\t',.split('\t')分割的列表中只有一个元素。
一个元素没法赋值给 tgt_line , src_line 两个变量。
你要读取的文件内容是什么样子的, 发上来看看,现在是你读取的文件内容有问题
如果文件内容中有空行,要去掉空行
'ISO-8859-1'编码不支持中文,
文件内容是中英双语语料,内容中有中文的话文件编码肯定不是 encoding='ISO-8859-1'
改成
encoding='utf-8'
或
encoding='gbk'
试试
分析:这个错误的信息是,期望有两个返回值,但其实函数只有1个返回值
解决方法,现错误的原因是读取的文件有问题,读取的文件内不能包含换行符
建议把文件中的所有的换行去掉,如果有空行也去掉
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
不知道你想干什么。。。你是要分词么?
从一个文件里把内容读出来,分词后存入另一个文件?