python - 运行成功,但是没相应的文件生成
大家讲道理
大家讲道理 2017-04-18 10:18:13
0
4
866
       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... 是这个视频里的

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全員に返信(4)
Peter_Zhu

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


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


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

いいねを押す +0
PHPzhong

エラーメッセージがうまく投稿されていないのですが、このコード (role,line_spoken) = each_line.split(':', 1) が原因のようです
each_line 変数に : が含まれていない場合、エラーが発生します

いいねを押す +0
阿神

エンコーディングの問題は Python2 でより大きな影響を与えるため、特に注意してください;

  1. Windows のメモ帳で保存するときのデフォルトのエンコードは GBK ですが、python2 は Unicode に従って処理するため、ファイルを開くときに、さらなる問題を避けるために最初にエンコードを Unicode に変換することをお勧めします。

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

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

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

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート