私はPythonに読み込み、操作して別のCSVファイルに書き込もうとしているcsvファイルを持っています。区切り記号として区切り記号の前または後にカンマ区切りでカンマを区切る方法
私の現在の問題は、ファイルがカンマで区切られているにもかかわらず、すべてのカンマがデリミタではないことです。
NOTの前および/または後にカンマだけが区切り文字としてカウントされる必要があります。 (「のみ」、「not」、「or」、「」)。ここで
は私のコードは次のように見える方法は次のとおりです。
import csv
#open file for reading
with open(mypath, 'r', encoding = 'utf_8') as csvfile:
myfile = list(csv.reader(csvfile, dialect = 'excel', delimiter = ','))
#specifying columns to be deleted
BadCols = [29,28,27,25,21,20,19,18,16,15,14,13,12,11,8,7,4,3]
#Loop through column indices to be deleted
for col in BadCols:
#Loop through each row to delete columns
for i, row in enumerate(myfile):
#Delete Column, which is basically a list item at that row
myfile[i].pop(col)
#Open file for writing
with open(mypath2, "w", encoding = 'utf_8', newline='') as csvfile:
csv_file = csv.writer(csvfile, dialect = 'excel', delimiter = ',')
for i, row in enumerate(myfile):
for j, col in enumerate(row):
csvfile.write('%s, ' %col)
csvfile.write('\n')
csvfile.close
ここに私のデータがどのように見えるかです:
Date,Name,City
May 30, 2016,Ryan,Boston
は、ここで私は、私はExcelを使用してファイルを開いたときに見てみたいものだ。
Date Name City
May 30, 2016 Ryan Boston
実際に私がExcelから実際に見ているもの:
Date [Blank column name] Name City
May 30 2016 Ryan Boston
したがって、日付は1つではなく2つの要素として読み取られます。
ご協力いただければ幸いです。
CSVとフィールドセパレータは "引用"なしのコンテンツとしても使用されています - shiver、私は速いハックとして、最初にすべての "良い" separtorsを帯域外の文字(pipe(|))それ以外のファイルに表示されている場合は、そのファイルを分割するか、csvモジュールで特殊な方言または自動検出を解析するようにしてください。しかし、ここの夕方では遅すぎるかもしれません;-)、または、右の場合は、常に2つのコンマが、単純な 'line.rsplit( '、'、2)'などで右側から解析されます。 @ padraic-cunninghamの回答 – Dilettant
あなたが持っているものは**適切なCSVファイルではありません**。ファイルを修正してください... – Bakuriu