Pythonでシリアルポート用のスニファーを作成していますが、WindowsでCSVファイルを作成するときに問題があります。Windows と Linux 間の非互換性の可能性を回避するために、ある時点でプログラムを分割しました。Linux で完全に動作します (32 および 64 バイトでテスト)。
def createNewFiles(self):
# Nons allons vérifier l'existance du dossier Sniffer_Serie_Result et le créer si besoin
# De même pour le fichier csv
if (os.name == "nt"): # pour windows
self.userPath = os.getenv('HOME') or os.getenv('USERPROFILE')
self.folderPath= os.path.abspath(self.userPath + "\\Sniffer_Serie_Result")
#exist_ok=True ==> cree le dossier si il n'existe pas
os.makedirs(self.folderPath,exist_ok=True)
self.timestampWithSec= self.timestampWithoutMilli() # utilisé dans les noms de fichier
self.filePathRequest= os.path.abspath(self.folderPath + "\\Request_at_" + self.timestampWithSec + ".csv")
self.filePathResponse= os.path.abspath(self.folderPath + "\\Response_at_" + self.timestampWithSec + ".csv")
self.filePathOverall = os.path.abspath(self.folderPath + "\\Overall_result_at_" + self.timestampWithSec + ".csv")
with open(self.filePathRequest, 'w') as f:
writer = csv.writer(f)
writer.writerow(["Kind of message","Timestamp","Message Hexa","Message ASCII"])
with open(self.filePathResponse, 'w') as f:
writer = csv.writer(f)
writer.writerow(["Kind of message","Timestamp","Message Hexa","Message ASCII"])
フォルダー Sniffer_Serie_Result はエラーなしで作成されるため、このコードは最初に次のエラーを返します。
IOError: [Errno 22] 無効な引数: 'C:\Documents and Settings\stagiaire\Sniffer_Serie_Result\Request_at_......(実際の日付と時間).csv'
生の文字列のように多くの文字列を試してみましたが、何も機能しません。
注: テストに使用する Windows は XP です。これは 7 でも動作する必要があります。
あなたが私を助けてくれることを願っています。助けてくれてありがとう!
木曜日までにこれ以上の情報を提供することはできません (当面の間、家にインターネットはありません)