V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zmq175
V2EX  ›  PHP

如何将一个 txt 文件中的多个字段导入 mysql!

  •  
  •   zmq175 · 2015-01-31 04:34:01 +08:00 · 4717 次点击
    这是一个创建于 3376 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前试了好几次都不成功。
    txt的一部分如下:
    a[ei, ә]art.一个
    an[әn, æn]art.一个
    ability[ә'biliti]n.能力,才干
    able['eibl]a.有才能的,能够的
    about[ә'baut]prep.关于
    above[ә'bʌv]prep.在…之上
    accident['æksidәnt]n.意外;偶然事故
    according to[әˌkɔ:diˌ tu:]依照
    achieve[ә'tʃi:v]vt.完成
    across[ә'krɔs]ad.交叉;横过
    act[ækt]n.行为;举动
    action['ækʃәn]n.行动;动作
    active['æktiv]a.活动的;活跃的
    actual['æktʃuәl]a.实际的;真实的
    adapt[ә'dæpt]vt.使适应;使适合
    add[æd]v.增加
    addition[ә'diʃәn]n.加;加起来
    address[ә'dres]n.地址;住址
    admire[әd'maiә]vt.钦佩;赞美;赞赏
    admit[әd'mit]vt.承认,供认
    advance[әd'vɑ:ns]n.前进;增进

    16 条回复    2015-01-31 19:21:21 +08:00
    zmq175
        1
    zmq175  
    OP
       2015-01-31 04:35:03 +08:00
    存入一个数据库表。。。
    里面有自增的id。
    英文,音标,解释个为一列。。。
    大一学生。。。表示搞不定!求助!
    haiyang416
        2
    haiyang416  
       2015-01-31 05:11:13 +08:00 via Android
    不要弄那么复杂,写个正则式匹配下就行。
    如果有能力,写状态机弄个词法分析也可以,
    你是在哪里出了问题?
    yfdyh000
        3
    yfdyh000  
       2015-01-31 05:16:00 +08:00   ❤️ 1
    [和]替换成,不就是CSV格式了吗(排除特殊情况),然后不难吧。
    vibbow
        4
    vibbow  
       2015-01-31 05:16:19 +08:00
    用navicat直接导入就行了。
    haiyang416
        5
    haiyang416  
       2015-01-31 05:18:43 +08:00 via Android
    推荐先用正则把整个文件按行分割成你需要的几个部分,最好另存到新文件,人工检查一下分割是否正确。
    然后读取分割后的文件写入数据库,文件大的话按行读,不要一次性塞内存。
    haiyang416
        6
    haiyang416  
       2015-01-31 05:31:43 +08:00 via Android
    如果对释义没什么格式要求就用这楼的方法 @yfdyh000
    tulongtou
        7
    tulongtou  
       2015-01-31 08:29:24 +08:00 via iPhone
    随便用一种语言读取txt,然后处理插入数据库
    tempdban
        8
    tempdban  
       2015-01-31 09:57:22 +08:00 via Android
    excel分列导出csv
    for8ever
        9
    for8ever  
       2015-01-31 09:58:10 +08:00
    <div>fff</div>
    zmq175
        10
    zmq175  
    OP
       2015-01-31 10:35:23 +08:00 via iPhone
    @haiyang416 就是导入的时候乱掉了
    xiaowu365
        11
    xiaowu365  
       2015-01-31 11:40:51 +08:00
    编码 注意下,CSV 导入应该没问题
    KnightChu
        12
    KnightChu  
       2015-01-31 11:47:44 +08:00
    @zmq175 用 Python 或者 Ruby 什么的处理一下,然后文件输出吧
    chunyang
        13
    chunyang  
       2015-01-31 13:30:14 +08:00
    把 txt 转化成用 tab 隔开的 csv,之所以用 tab,是因为数据中含有空格和逗号。

    可以用 GNU Awk 完成这一任务,即根据方括号(之前、之中、之后)把数据分成 3 组:单词短语、音标、解释:

    <script src="https://gist.github.com/xuchunyang/b293bd5f6c4465b9dd3c.js"></script>

    csv 导入 mysql 应该比较简单,我没用过 mysql,具体不了解。
    zmq175
        14
    zmq175  
    OP
       2015-01-31 14:53:55 +08:00
    最后打算用navicat了!!!谢谢大家
    zmq175
        15
    zmq175  
    OP
       2015-01-31 19:17:55 +08:00
    @chunyang 音标有少数出现了乱码的情况。。。编码是utf-8无误。。。
    chunyang
        16
    chunyang  
       2015-01-31 19:21:21 +08:00
    @zmq175 具体原因不清楚,可能音标中的字符成分比较复杂。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5542 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 08:14 · PVG 16:14 · LAX 01:14 · JFK 04:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.