def save_file(boy,girl,count):
file_name_boy = 'boy' + str(count) + '.txt'
file_name_girl = 'girl' + str(count) + '.txt'
boy_file = open(file_name_boy, 'w')
girl_file = open(file_name_girl, 'w')
boy_file.writelines(boy)
girl_file.writelines(girl)
boy_file.close()
girl_file.close() #把两人的对话分别放到命名不同的文件里
def split_file(file_name):
f = open('E:/test/dialogue.txt')
boy=[]
girl=[]
count=1
for each_line in f:
if each_line[:6] != '======':
(role,line_spoken) = each_line.split(':', 1) #每行按照:分割成1+1个子字符串,分别赋值给=前面的对象
if role == '小甲鱼':
boy.append(line_spoken)
if role == '小客服':
girl.append(line_spoken)
else:
save_file(boy,girl,count)
boy = []
girl = []
count += 1
save_file(boy,girl,count)
f.close()
split_file('E:/test/dialogue.txt')
E:\Python\python.exe "E:/PyCharm 2016.3.2/testest/abc/filelearn_01.py"
Process finished with exit code 0
http://edu.csdn.net/course/de... 是这个视频里的
天蓬老师2017-04-18 10:20:13
이미 작업 환경에서 검색된 키워드에 성공했습니다.
또한 'e:test/dialogue.txt'는 전자//로 사용되며, 후자는 전자//또는 또는/또는; , 후자는 경사면에서만 사용할 수 있습니다.
관심 있으신 분들은 한번 해보고 그 이유를 알려주세요
PHPz2017-04-18 10:20:13
에러 메시지가 잘 안 뜨네요. 이 코드(role, line_spoken) = Each_line.split(':', 1)로 인해 오류가 발생한 것 같습니다.
each_line 변수에 다음이 포함되지 않은 경우:, 오류가 발생합니다
阿神2017-04-18 10:20:13
인코딩 문제는 Python2에 더 큰 영향을 미치므로 특별한 주의를 기울이세요.
Windows에서 메모장에 저장할 때 기본 인코딩은 GBK이지만 python2는 유니코드로 처리하므로 파일을 열 때 더 많은 문제를 피하기 위해 먼저 인코딩을 유니코드로 변환하는 것이 좋습니다.
또한 메모장의 줄 바꿈 문자는 "n"입니다. Python이 파일을 읽을 때 줄 바꿈 문자도 읽습니다. 이로 인해 후속 처리에 불필요한 문제가 발생할 수도 있습니다. 개행 문자
그런 다음 콜론 문제가 발생합니다. 오류의 원인은 분할 메소드가 문자열 Each_line에서 코드에 제공된 콜론을 찾을 수 없기 때문입니다. 주신 콜론은 영어 상태의 콜론이고 파일의 콜론은 중국어 상태의 콜론입니다. 하지만 직접 중국어 콜론으로 변경하는 경우에는 유니코드 문자열의 중국어 콜론으로 통일해야 합니다.
다음 단계는 role == 'Little Turtle'의 중국어 비교 사례입니다. 상대적으로 정확하게 비교하려면 Python에 유니코드 문자열을 사용하고 있음을 알려주어야 합니다.