1
私は巨大なcsvファイルを別のcsvファイルにコピーしたいが、100行の最初のファイルとretainheaderをスキップすると同時に、引用符で囲まれたいくつかの名前の間にある不要なカンマを無視したい、ロジャー」いくつかの条件で、50000行のヘッダーと別のCSVにCSVファイルをコピーするにはどうすればよいですか?
入力データ:5行目で
Header------>
EPINASTINE HCL 0.05% EYE DROPS,51991083675,7.75853,03/23/2016,ML
EPINASTINE HCL 0.05% EYE DROPS,51991083675,7.75853,03/23/2016,ML
EPINASTINE HCL 0.05% EYE DROPS,51991083675,7.75853,03/23/2016,ML
HYDROMORPHONE 2 MG TABLET,68084042301,0.08511,03/23/2016,EA
"BICILLIN L-A 2,400,000 UNITS",60793070210,54.03213,01/01/2016,ML
EPINASTINE HCL 0.05% EYE DROPS,51991083675,7.75853,03/23/2016,ML
『BICILLIN LA 2,400,000 UNITS』は一つの要素であり、Iは、スペースによって無視するか交換するかしたいとも先、-間にコンマが含まれてい上位3行を無視します。 output.csvは次のようになります。
Header------>
HYDROMORPHONE 2 MG TABLET,68084042301,0.08511,03/23/2016,EA
"BICILLIN L-A 2 400 000 UNITS",60793070210,54.03213,01/01/2016,ML
EPINASTINE HCL 0.05% EYE DROPS,51991083675,7.75853,03/23/2016,ML
私を助けてください。以下 は私の抜粋です:
with open(filename , 'rb') as infile:
data_in = infile.readlines()
with open ('temp.csv', 'wb') as outfile:
outfile.writelines(data_in[0])
outfile.writelines(data_in[3:])
os.remove(filename)
os.rename('temp.csv',filename)
私はこの中で、不要なカンマを交換する方法を取得しておりません。
私はパイソン達ではありませんが、私はCSVファイル(悲しいことに)を使用しています。カンマが含まれているインジケータは、フィールドの二重引用符です。それらの "余分な"カンマを削除する場合は、引用符で囲まれたフィールドに一致する正規表現に注目し、それらのカンマを削除してから、その文字列を使用します(引用符は私の提案です)。ヘッダーを保持し、特定の行を削除する限り、私はイテレータを使用して行のグループをスキップし、レコード処理を行い、ターゲットファイルに追加します。がんばろう。 – DDeMartini
あなたは次のように書いています:1)* 100行目の最初のファイルとretainheader *をスキップします。 2)*上位3行を無視したい*。それで、あなたの実際の正確な条件は何ですか? – RomanPerekhrest
あなたの 'data_in'を行単位でループする必要があり、if文などでスキップ/訂正を行う方法があります。次に、訂正された行をリストに入れてまたは処理されるたびに行ごとに書き込む場合に使用します。 – ahed87