찾다

 >  Q&A  >  본문

python - 运行成功,但是没相应的文件生成

       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... 是这个视频里的

大家讲道理大家讲道理2804일 전876

모든 응답(4)나는 대답할 것이다

  • 天蓬老师

    天蓬老师2017-04-18 10:20:13

    이미 작업 환경에서 검색된 키워드에 성공했습니다.


    또한 'e:test/dialogue.txt'는 전자//로 사용되며, 후자는 전자//또는 또는/또는; , 후자는 경사면에서만 사용할 수 있습니다.


    관심 있으신 분들은 한번 해보고 그 이유를 알려주세요

    회신하다
    0
  • PHPz

    PHPz2017-04-18 10:20:13

    에러 메시지가 잘 안 뜨네요. 이 코드(role, line_spoken) = Each_line.split(':', 1)로 인해 오류가 발생한 것 같습니다.
    each_line 변수에 다음이 포함되지 않은 경우:, 오류가 발생합니다

    회신하다
    0
  • 阿神

    阿神2017-04-18 10:20:13

    인코딩 문제는 Python2에 더 큰 영향을 미치므로 특별한 주의를 기울이세요.

    1. Windows에서 메모장에 저장할 때 기본 인코딩은 GBK이지만 python2는 유니코드로 처리하므로 파일을 열 때 더 많은 문제를 피하기 위해 먼저 인코딩을 유니코드로 변환하는 것이 좋습니다.

    2. 또한 메모장의 줄 바꿈 문자는 "n"입니다. Python이 파일을 읽을 때 줄 바꿈 문자도 읽습니다. 이로 인해 후속 처리에 불필요한 문제가 발생할 수도 있습니다. 개행 문자

    3. 그런 다음 콜론 문제가 발생합니다. 오류의 원인은 분할 메소드가 문자열 Each_line에서 코드에 제공된 콜론을 찾을 수 없기 때문입니다. 주신 콜론은 영어 상태의 콜론이고 파일의 콜론은 중국어 상태의 콜론입니다. 하지만 직접 중국어 콜론으로 변경하는 경우에는 유니코드 문자열의 중국어 콜론으로 통일해야 합니다.

    4. 다음 단계는 role == 'Little Turtle'의 중국어 비교 사례입니다. 상대적으로 정확하게 비교하려면 Python에 유니코드 문자열을 사용하고 있음을 알려주어야 합니다.

    으아아아

    회신하다
    0
  • 高洛峰

    高洛峰2017-04-18 10:20:13

    전각이냐 반각이냐의 문제인 것 같아요.
    하지만 귀하의 방법은 내결함성에 적합하지 않습니다.
    제 제안은 다음과 같습니다.

    으아아아

    회신하다
    0
  • 취소회신하다