• ベストアンサー

macでsqlite3でcsvのインポート

macでsqlite3でcsvのインポートができません。 in.txt -------- 1,りんご,赤色 2,みかん,黄色 ターミナル上で sqlite> .separator , sqlite> .import in.txt tbl1 といった具合にやると、改行が認識されないのか、 expected 2 columns of data but found 4 といったエラーがでます。 対処法を教えてください(><)

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

そう思うのなら、改行コードを調べてはどうでしょうか? MacOSのバージョンが記載されていませんが、 OS9以前のMacでは、標準の改行コードはCR でした。 OSXになってから、UNIXベースになり、標準の改行コードは LF です。 特に、ターミナルから入力するようなコマンドは、UNIXベースのコマンドであり、LFを改行コードとするものがほとんどです。(一部に自動判別するものや、オプションで指定できるものなどがあります) 一部アプリケーションで、OS9以前のMac用の意味で、「改行コード: CR(Mac)」等となっているものがあります。 もし、in.txt を保存するときに「CR」を選んでいるのなら、それを「LF」にしてください。

torabata
質問者

お礼

大変助かりました、解決しました。 LFに変更して解決しました。 本当にありがとうございました。

関連するQ&A

  • sqlite3でcsvのインポートができない

    macでsqlite3でcsvのインポートができません。 in.txt -------- 1,りんご,赤色 2,みかん,黄色 ターミナル上で sqlite> .separator , sqlite> .import in.txt tbl1 といった具合にやると、改行が認識されないのか、 expected 2 columns of data but found 4 といったエラーがでます。 対処法を教えてください(><)

  • CSVをSqlite3にインポート。

    CSVをSqlite3にインポートする際に..コマンドから行うとデータ内の改行が崩れるようです。 これはパーサーが単に改行を行末として扱っているためでしょうか。 『,』カンマに至っても同じようです。 CSVデータに『,』カンマや改行データが存在しても正しく処理が行えるアプリ等を探しております。 改行データを置き換えて潰さないものがベターで 作業環境上インストールできませんので、レジストリを汚さないアプリと言う条件です。 注文が多く申し訳ありません、ご存知の方がいましたら教えてください。

  • SQLiteのテーブルデータ移行について

    SQLiteについて質問します。 よろしくお願いします。 [環境] WindowsXP pro sp3 sqlite 3.6.9 [やりたいこと] SQLiteのテーブルのデータを、別のSQLiteのデータベースに移行したい。 ただし、移行の操作はすべてコマンドプロンプト上で実行したい。 [現状] 移行したいテーブルのデータをCSV形式でアウトプット出来ています。 [困っていること] 1.移行したいテーブルのデータに改行が入っていると、インポートに失敗してしまう。 >うまくインポートできる例 1,2,"あいうえお",5,6,2011/10/21 >インポートに失敗する例 1,2,"あいう えお",5,6,2011/10/21 2.CSVの文字列データの先頭と最後尾にある「"」も一緒にインポートされてしまう。 1,2,"あいうえお",5,6,2011/10/21 このデータをインポートした場合、 1|2|あいうえお|5|6|2011/10/21 この様にインポートしたいが、 1|2|"あいうえお"|5|6|2011/10/21 この様にインポートされてしまう。

  • 【ACCESS】インポート定義を使わないCSVインポート

    ACCESS VBAにてMDBにSQL文でCSVデータをINSERTしようとしています。INSERT自体はうまくいったのですが、データの型をうまくそろえられません。2日程ネットサーフィンしているものの良いサンプルを見つけられません。有識者の方、ご存知でしたら是非教えてください! まず、CSVデータは以下のようなものです。 ===aaa.csv=== 00000001,2009/1/31 00000002,2009/1/31 ・ ・ A000001,2009/1/31 Z000002,2009/1/31 ========== これを 既存テーブル:aaa_TBLに取り込ませたく、以下のSQL文を書きました。 INSERT INTO aaa_TBL(カラム1,カラム2) SELECT FORMAT([aaa#CSV].F1,'0000000'),[aaa#CSV].F2 FROM aaa#csv IN 'C:\' 'Text;HDR=NO' これにて「0000001」と「000002」等のレコードは正常に取り込むことができましたが、「A000001」「B000002」等のデータは取り込まれず、NULLにて登録されておりました。 (aaa_TBL自体はカラム1=テキスト型、カラム2=日付型でCreateされております。) これを回避したく、いろんなサイトを訪問したのですが、ほとんどがインポート定義を使った方法を推奨しておりました。 しかしながら、私にはどうしてもインポート定義が理解できないんです! 「VBAにて○○.iniを作成する方法」などをよく見かけるんですが、できるだけ他の方法を検討したいと考えております。(今後、ACCESS VBAから他言語への乗り換えを考えているとか、他CSVにてインポートされるテーブルの数が30個程あるので、インポート定義ファイルの管理がつらいな・・・とか色々他にも理由はあるんですが・・・・) 何か良い方法はないでしょうか?! やはりインポート定義を作らないとだめでしょうか?! その場合、簡単なサンプルコードなどを頂けますと非常に助かります。。。(MSサイトのサンプルコードは理解できませんでした。。。) まだVBAを勉強し始めて2週間なので、色々突っ込みどころはあると思いますが、どうぞよろしくお願いしますm(_ _)m

  • gnuplotで複数csvファイルからデータ取得

    http://t16web.lanl.gov/Kawano/gnuplot/datafile3.html を読んだところ、複数のファイルから読み込む場合は、UNIXのコマンドを使えばいいらしいことはわかったのですが、 #a1.csv 1.0,2.0 2.0,4.0 3.0,6.0 #a2.csv 1.0,1.0 2.0,4.0 3.0,9.0 というファイルに対し、とりあえずpasteを利用して複数行呼び出しを行おうとしたのですが、 gnuplot> set datafile separator "," gnuplot> plot "<paste -d',' a1.csv a2.csv" using 1:2 warning: Skipping unreadable file "<paste -d',' a1.csv a2.csv" No data in plot と表示されてしまいました。 一体どのようにすれば、複数のcsvファイルを結合したものを読み込めるのでしょうか? また、Cygwin上でpasteコマンドについてちょっと実験してみたのですが、 $paste -d"," a1.csv a2.csv >output.txt とすると、 #output.txt 1.0,2.0 ,1.0,1.0 2.0,4.0 ,2.0,4.0 3.0,6.0 ,3.0,9.0 と表示されるのですが、 $paste -d"," a1.csv a2.csv とすると、Cygwin上には、 ,1.0,1.0 ,2.0,4.0 ,3.0,9.0 と表示されます。 output.txtに出力した際は、メモ帳上では、結合している部位で改行されているようには見えないのですが、ブラウザにコピペしたところ改行されてしましました。 どうやら、結合した場所に\rが入っているくさいです。 このpasteを使う方法以外にもgnuplotで扱うのにもっといい方法があるという場合はその方法も教えていただけると幸いです。 よろしくお願いします。

  • Excelで改行が含まれたフィールドをcsvに変換する際改行を取る方法を教えてください

    ExcelをCSVファイルにする必要があり、レコードの形式を "aaa","bbb","ccc"改行コード にしたいいと考えております。(それぞれのフィールドに改行コードは不可) Excelファイル時に、改行を置換(Ctrl+JをNULLで置換)しCSVで保存しエディタで見ると改行が残っています。(CR-LFがCRに置換されているため) 使用しているエディタはEmエディタです。 Accessでインポートしたのちtxtでエクスポートしても結果は一緒でした。 フィールド内の改行だけを取る方法はありますでしょうか。

  • csvファイルについて

    csvエディッタ?ソフトで下記のような事を出来る無料ソフトありませんか? もしあれば教えてください。 やりたい事 CSVエディッタ?で開いたらこのようなCSVファイルがあるとします。そのCSVを入らない行列、列を消して残ったデーターが画像のようなデーターです。 そしてこのデーターをTXTファイルで保存したいのですが <div> <div class="a">りんご</div> <div class="b">200円</div> <div class="c">赤色</div> </div> <div> <div class="a">いちご</div> <div class="b">300円</div> <div class="c">赤色</div> </div> <div> <div class="a">みかん</div> <div class="b">150円</div> <div class="c">オレンジ色</div> </div> のようにTXTファイルで保存したいのですが? テーブでhtmlで保存できるソフトは結構あるのですが。 上のに出来るソフト、マクロ?等でやり方があれば教えてくださいお願いいたします。 現在使ってるソフトはSmoothcsvです。 出来る限り無料ソフトでお願いいたします。

  • csvファイルに保存が出来ずに困っています!!

    python初心者でございます。 python2.7,beautifulsoupを用いて競馬情報をスクレイピングしましたが、 作成されたhorse.csvファイルにデータ保存が出来ず、困っております。 csvファイルに保存出来るスクリプトを、御教示よろしくお願いいたします。 小生が作成したソースコード -*- coding:utf-8 -*- import urllib2 import codecs from bs4 import BeautifulSoup f = codecs.open('horse.csv', 'w', 'utf-8') f.write('tr1') tpl_url='http://db.netkeiba.com/?pid=jockey_detail&id=00663&page={0}' for i in xrange( 1, 2 ): url=tpl_url.format( i ) soup = BeautifulSoup(urllib2.urlopen(url).read(),"lxml") tr_arr = soup.find('div', {'id':'contents_liquid'}).findAll('tbody') for tr in tr_arr: lrg1 = tr.findAll('td',{'class':'txt_l'}) for tr1 in lrg1: print tr1.a.string f.close() 試したこと 上記のプログラムを動かすと作成されたCSVファイルには何も記録、保存されておりませんでした。 御教示よろしくお願いいたします!!!

  • CSVファイルのインポート

    辞めた人のプログラムを書き換えています。 初心者なもので、あまりコードを理解しておりませんが、 一応できるところまで直してみました。 CSVファイルをアクセスにインポート、その後項目(FileName)を追加し、CSVのファイル名を追加した項目にいれたいです。 下記構文で、インポートまではできましたが 最後の方の dbs.Execute sql でエラーになります。 ここをクリアするにはどこを修正すればよろしいでしょうか? アクセスは2003です。 Private Sub Cmd_01_Click() Dim ercd As Integer Dim dbs As adodb.Connection Dim LsName As String Dim TName As String Dim Name1 As String Dim teigi As String Set dbs = CurrentProject.Connection If Nz(Me.txt_01) = "" Then MsgBox "インポートするファイル名を入力して下さい", vbOKOnly, "エラー" Me.txt_01.SetFocus Exit Sub End If 'ファイル名の取得 strError = 0 LsName = "\\St1\第2業務部\$運用\1010030 アールジービー\業務\RGB一時作業ファイル\なるには不備チェック\TESTkanno\" TName = Me.txt_01 LsName = LsName & TName & ".csv" 'インポートの確認 ret = MsgBox(TName & "をインポートしますか?", vbYesNo + vbQuestion, "インポート確認") If ret = vbNo Then Exit Sub End If Debug.Print LsName 'レコードの追加 teigi = "RGB定義" DoCmd.TransferText acImportDelim, teigi, TName, LsName, False, "" ret = MsgBox(TName & "をマスターに追加しますか?", vbYesNo + vbQuestion, "インポート確認") If ret = vbNo Then Exit Sub End If Call FileTuika End Sub Sub FileTuika() Dim sql As String Dim aa As Long sql = "INSERT INTO T_Mas (処理状況,請求日,学校識別コード,学校名,学校分類名,メールアドレス,名前,ふりがな,性別,生年月日,職業,高校所在地,高校名,学年,郵便番号,都道府県,区市町村&町域,番地以下,電話番号,FileName,区分,不備,不備理由,yu,gid,保留,処理済,件数報告日,納品日 )" & _ " SELECT [" & T_Mas & "].[処理状況], [" & T_Mas & "].[請求日]," & _ " [" & T_Mas & "].[学校識別コード], [" & T_Mas & "].[学校名], [" & T_Mas & "].[学校分類名], [" & T_Mas & "].[メールアドレス]," & _ " [" & T_Mas & "].[名前], [" & T_Mas & "].[ふりがな], [" & T_Mas & "].[性別], [" & T_Mas & "].[生年月日]," & _ " [" & T_Mas & "].[職業], [" & T_Mas & "].[高校所在地], [" & T_Mas & "].[高校名], [" & T_Mas & "].[学年]," & _ " [" & T_Mas & "].[郵便番号], [" & T_Mas & "].[都道府県], [" & T_Mas & "].[区市町村&町域], [" & T_Mas & "].[番地以下]," & _ " [" & T_Mas & "].[電話番号], '" & LsName & "'," & FileName & " From" & "LsName" Debug.Print sql dbs.Execute sql dbs.Close Set dbs = CurrentDb() With dbs For Each tdfa In .TableDefs If tdfa.Name = TName Then dbs.TableDefs.Delete tdfa.Name End If Next tdfa End With dbs.Close End Sub

  • 二次元配列について

    二次元配列を使用して三択クイズを作ろうとしています。 画面イメージ: 問1 りんごは何色?    1.黄色    2.青色    3.赤色 答入力>3 正解。 問2 ミカンは何色?    1.オレンジ色    2.紫色    3.赤色 答入力>2 不正解。正解は1。 ----------------------------------------------- これをプログラムにしてみると、 int tbl[][] = new int[2][5]; tbl[][]={{"りんごは何色?","1.黄色","2.青色","3.赤色",3}, {"ミカンは何色?","オレンジ色","紫色","赤色",1} }; for(int i=0;i < 1 ;i++) { System.out.println(tbl[i][0]); System.out.println(tbl[i][1]); System.out.println(tbl[i][2]); System.out.println(tbl[i][3]); System.out.print("答入力ー>"); String str = br.readLine(); int name = Integer.parseInt(str); if(name == tbl[i][4]) { System.out.print("正解です。"); } else { System.out.print("不正解 答えは"+ tbl.length[i][4] +"です。"); } } ------------------------------------------------ for文とlengthを使用するという条件を踏まえて作ったのですが、エラーとして文ではありませんとでてさきに進めない状況です。

    • ベストアンサー
    • Java