Pythonが例外シンボルを含む拡張4(Linux)パーティションにファイルを保存する場合(これまでは角括弧[]が見つからない場合)、ファイル名を自動的に引用します。
たとえば、
file[].txt
次に保存されます
'file[].txt'
Linuxでは、拡張4パーティション「file[].txt」が有効なファイル名です。
なぜこれが起こり、避けることができますか?ファイル名の最初と最後の記号を削除してソリューションを作成できますが、私のアプリケーションを複数のプラットフォームで実行する予定です。だからむしろ早く芽を切るほうがいいです。
Python3はAMD64プラットフォームLinux Gentoo、ext4パーティションで使用されます。
Pythonコード:
print('\ndebug:triggered sf mode, name of file below \n')
clientsocket, addr = serversocket.accept()
filename = clientsocket.recv(10240)
filename = filename.decode('UTF-8')
app_output(filename)
mode = 'valid'
clientsocket.close()
clientsocket, addr = serversocket.accept()
incmdata = '1'
somefile = open(filename, 'w+')
somefile.close()
while len(incmdata) !=0:
incmdata = clientsocket.recv(1024 * 8)
print('this is filename: ', filename)
somefile=open(filename, 'ab')
somefile.write(incmdata)
somefile.close()
app_output('file supposedly recieved')
filename変数は、クライアントがミニサーバーに送信する変数です。 (実際にはクライアントは位置変数をキャプチャします)
出力は次のとおりです。
file[].txt
this is filename: file[].txt
this is filename: file[].txt
他にも関連部品
ls -lah
-rw-r--r-- 1 dimko dimko 269 Sep 11 10:00 file_open.txt
-rw-r--r-- 1 dimko dimko 93 Sep 11 09:05 file_open.txt~
-rw-r--r-- 1 dimko dimko 5 Sep 14 11:24 'file[].txt'
drwxr-xr-x 3 dimko dimko 4096 Sep 14 11:21 .idea
-rw-r--r-- 1 dimko dimko 7635 Sep 14 11:20 LanSwissKnife.py
ベストアンサー1
実際のファイル名は次のとおりです。
file[].txt
ここではPythonプログラムに問題はありません。見積もりはで完了しますls
。
以下を使って再現できました。
ls -lah --quoting-style=shell
literal
ただし、参照スタイルで選択すると、次のようになります。
ls -lah --quoting-style=literal
[
次に、引用符を使用または使用せずにファイルを一覧表示します。システムごとにデフォルトのパラメータが異なる場合があります]
。ls