領域的最大數目我有我的文件夾中的200個CSV文件。 我想要做的是讀取每個文件的第一行並寫入新的csv。 和頂部,我想寫[文件,字段1,字段2,...字段N] n是場的最大數量。Python的CSV作家 - 寫在新的CSV文件列高達CSV文件
import csv
import glob
list=[]
hel=[]
files=glob.glob('C:/dataset/*.csv')
with open('test.csv', 'w',newline='') as testfile:
csv_writer = csv.writer(testfile)
for file in files:
with open(file, 'r') as infile:
file=file[file.rfind('\\')+1:]
file=file.strip('.csv')
reader = csv.reader(infile)
headers = next(reader)
hel.append((len(headers)))
max(hel)
lst = [file] + headers
csv_writer.writerow(lst)
後來才知道的200個文件字段最大數是255 因此,對新的CSV文件的頂部,我想寫file, field1, field2 ... field 255.
我怎樣才能做到這一點?
import csv
import glob
list=[]
hel=[]
files=glob.glob('C:/dataset/*.csv')
with open('test.csv', 'w',newline='') as testfile:
csv_writer = csv.writer(testfile)
for file in files:
with open(file, 'r') as infile:
file=file[file.rfind('\\')+1:]
file=file.strip('.csv')
reader = csv.reader(infile)
headers = next(reader)
hel.append((len(headers)))
b=['field{}'.format(i) for i in range(1,max(hel)+1)]
lst = [file] + headers
csv_writer.writerow(lst)
現在b
是列表看起來像這樣[「字段1」,「字段2」 ...「field255」] 我需要插入之前「字段1」文件「,並寫上該行新的csv文件的頂部。在csv_writer.writerow(lst)
之後編寫代碼可以讓我隔行掃描'field1','field2'..
csv文件。我該如何解決這個問題
獲取文件名沒有父目錄的路徑,使用'os.basename',並使用'os.splitext'到文件名分成主要部分和延伸部分。你只需要寫'file = os.path.splitext(os.path.basename(file))[0]' – frogcoder
你知道程序執行前的最大字段嗎?或者你想確定程序中的字段數量? – frogcoder
@frogcoder通過執行hel.append((len(headers))),程序知道文件夾中所有文件的最大字段數。在這種情況下,它是255.使用這個數字,我想在我的csv文件的開始處寫'['file','field1','field2',...'field255']'。當一個帶有300個字段的文件進入我的文件夾時,新的csv文件中應該有最多300個字段。 –