検索

ホームページ  >  に質問  >  本文

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

大家讲道理大家讲道理2881日前892

全員に返信(4)返信します

  • 天蓬老师

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

    職場環境で見つかったキーワードの検索に成功しました


    さらに、「e:test/dialogue.txt」 前者が // の場合、後者は //または or/or になります。前者が / の場合、後者は単一勾配のみになります。


    興味があれば、試してみてその理由を教えてください

    返事
    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 は Unicode に従って処理するため、ファイルを開くときに、さらなる問題を避けるために最初にエンコードを Unicode に変換することをお勧めします。

    2. さらに、メモ帳の改行文字は「n」であり、Python はファイルを読み取るときにも改行文字を読み取ります。これにより、以降の処理に不要な問題が発生する可能性があります。
    3. 次に、コロンの問題があります。エラーの理由は、split メソッドが文字列 each_line でコードによって指定されたコロンを見つけることができないことです。指定したコロンは英語の州のコロンですが、ファイル内のコロンは中国語の州のコロンです。ただし、これを中国語のコロンに直接変更する場合は、中国語のコロンを Unicode 文字列に統合する必要もあります
    4. ;

    5. 次のステップは、role == 'Little Turtle' の中国語の比較の場合です。比較を比較的正確に行うことができるように、Python に Unicode 文字列を使用していることを伝える必要があります。
    6. リーリー

      返事
      0
  • 高洛峰

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

    全角か半角の問題だと思います。
    しかし、あなたの方法はフォールトトレランスには適していません。
    私の提案は次のとおりです:

    リーリー

    返事
    0
  • キャンセル返事