2011-02-06 5 views
46

Dans le shell Unix, je peux le faire pour vider un fichier:Comment vider un fichier en utilisant Python

cd /the/file/directory/ 
:> thefile.ext 

Comment pourrais-je faire de manière en Python?

Est-ce os.system la façon ici, je ne sais pas comment depuis que je dois envoyer 2 actions après l'autre à savoir le cd et la :>.

+1

Ne devrait pas ouvrir le fichier avec un mode de "w" faire cela, c'est à dire 'open ("/the/path/thefile.ext "," w ")'? –

+2

vous répondez à une question avec une autre question? – Adergaard

+11

L'utilisation d'une question à la place d'une déclaration n'est-elle pas un moyen rhétorique d'indiquer un degré d'incertitude assez courant? – DSM

Répondre

119

Ouverture d'un fichier crée et (sauf si append ('a') est réglé) avec emptyness remplace, comme ceci:

open(filename, 'w').close() 
+0

Y aurait-il un problème si le fichier est constamment écrit (c'est un fichier journal qui est écrit toutes les secondes) – Adergaard

+0

@Adergaard Typiquement non. Si le fichier existe déjà, il ne sera pas créé, mais le même fichier sera utilisé et tronqué. Si le processus de journalisation continue d'écrire dans le fichier, il apparaîtra également dans ce fichier. Cependant, en combinaison avec des opérations de fichiers basées sur 'seek' ou' tell', des choses étranges peuvent se produire. – rumpel

+0

bizarre, cela semble juste ne pas être le cas. –

17

Autre forme de la réponse par @rumpel

with open(filename, 'w'): pass 
Questions connexes