ファイルを作成したい。すでに存在する場合は、削除して新規作成します。このようにしてみましたが、Win32エラーがスローされます。何が悪いのですか?
try:
with open(os.path.expanduser('~') + '\Desktop\input.txt'):
os.remove(os.path.expanduser('~') + '\Desktop\input.txt')
f1 = open(os.path.expanduser('~') + '\Desktop\input.txt', 'a')
except IOError:
f1 = open(os.path.expanduser('~') + '\Desktop\input.txt', 'a')
開いているファイルと os.remove()
状態のドキュメントを削除しようとしています...
Windowsで、使用中のファイルを削除しようとすると例外が発生する
コードを次のように変更できます...
filename = os.path.expanduser('~') + '\Desktop\input.txt'
try:
os.remove(filename)
except OSError:
pass
f1 = open(filename, 'a')
...またはすべてを...に置き換えることができます.
f1 = open(os.path.expanduser('~') + '\Desktop\input.txt', 'w')
...ファイルを開く前に長さをゼロに切り詰めます。
開いているファイルを削除しようとしています。削除するためにwith
は必要ありません。
path = os.path.join(os.path.expanduser('~'), 'Desktop/input.txt')
with open(path, 'w'): as f:
# do stuff
存在する場合は削除します
モードパラメータ= 'w'でopenを使用できます。モードを省略すると、デフォルトで「r」になります。
with open(os.path.expanduser('~') + '\Desktop\input.txt', 'w')
wファイルをゼロ長に切り捨てるか、書き込み用のテキストファイルを作成します。ストリームはファイルの先頭に配置されます。
Windowsでは、開いているファイルを削除できません(通常とは異なる共有オプションで開いている場合を除く)。削除する前に閉じる必要があります。
try:
with open(os.path.expanduser('~') + '\Desktop\input.txt') as existing_file:
existing_file.close()
os.remove(os.path.expanduser('~') + '\Desktop\input.txt')
これを試して:
from os import path,
PATH = os.path.expanduser('~') + '\Desktop\input.txt'
if path.isfile(PATH):
try:
os.remove(os.path.expanduser('~') + '\Desktop\input.txt')
except OSError:
pass
編集:
from os import path,
PATH = os.path.expanduser('~') + '\Desktop\input.txt'
try:
os.remove(os.path.expanduser('~') + '\Desktop\input.txt')
except OSError:
pass