こんにちは私は、ファイルがディレクトリに存在しない場合にファイルを作成する方法を知りたいです。データを追加したいだけです。
Pythonそのようなファイルやディレクトリはありません。
これは私のコードです:
with open (saveAddr+".csv",'a') as allpckts:
writer = csv.DictWriter(allpckts, delimiter=',', fieldnames=header)
if pktnum<2:
writer.writerow(dict((fn,fn) for fn in header))
writer.writerow(packet_data)
else:
writer.writerow(packet_data)
更新:私の問題は、正しいディレクトリにいないことでした。したがって、CSVファイルにのみ追加する最も基本的な構文を検索する人は次のとおりです。
with open (filename".csv",'a') as filedata:
writer = csv.DictWriter(filedata, delimiter=',', fieldnames=header)
writer.writerow(data)
おそらく、存在しないディレクトリにファイルを作成しようとしています。
必要なのは、「a」モードの機能です。存在しない場合はファイルを作成し、存在しない場合はファイルに追加します。ただし、ディレクトリは作成されません。これらのディレクトリが存在しない場合は、プログラムを実行する前に、saveAddrで使用されるディレクトリを作成する必要があります。
プログラムによる解決策が必要な場合は、 os.mkdir をチェックアウトして、ディレクトリを作成する必要があります。
with open (saveAddr+".csv",'a') as allpckts:
新しいファイルを作成しますsaveAddr+".csv"
存在しない場合は、それを開いてさらに追加します。saveAddr
がファイル名であると想定します(パスが含まれている場合は、パスが存在するかどうかを確認してください)。
ファイルが存在することを確認したい場合
os.path.isfile('/path/to/csv')
#check if dir exist if not create it
def check_dir(file_name):
directory = os.path.dirname(file_name)
if not os.path.exists(directory):
os.makedirs(directory)
def save(file_name, records):
check_dir(file_name)
csv_file = open(file_name,'w+')
csvWriter = csv.writer(csv_file,delimiter=',')
count = 0
for record in records:
csvWriter.writerow([record])
count+=1
print(count, " record saved to ",file_name)
return count enter code here
directory = os.path.abspath(os.path.join(os.path.curdir))
save(directory+"/data/filename.csv",your_list)