2016-03-19 11 views
0

私は現在asksaveasfileを使用してファイルを保存しています。正常に動作しています。私が抱えている唯一の問題は、新しいファイル名を得ることができないということです。私はasksaveasfilenameが存在することを知っていますが、もしそれらを一緒に使うと、私は起こりたくない2つのウィンドウをポップアップします。私はasksaveasfileの出力を印刷しようとした場合、私は、次を得る:ファイルとして保存すると同時に名前を取得する方法は?

<_io.TextIOWrapper name='/home/work/newfile.txt' mode='w' encoding='UTF-8'>. 

私はちょうどこのうち、ファイル名を取得することができます方法はありますか?

import tkinter 
file = tkinter.filedialog.asksaveasfile() 
name = file.name 

またはファイルを自分で開きasksaveasfilenameを使用することができます:

name = tkinter.filedialog.asksaveasfilename() 
file = open(name,'w') 

あなたもwithステートメントを使用することができ、この方法を

+0

'asksaveasfilename'を使用してファイルを開くか、結果の' .name'属性を使用してください。 –

答えて

1

だけasksaveasfileの結果の.name属性を使用しますとにかくファイルが適切に閉じられていることを確認してください。

name = tkinter.filedialog.asksaveasfilename() 
with open(name,'w') as f: 
    NotImplemented #do stuff with the file 
+0

これはうまくいきました。ファイル名を別にするためにbasename()関数を使いました。しかし、私はファイル名に自分の拡張子をつけています。たとえば、私は "file.txt"を取得するが、私はちょうど "ファイル"を得ることができる方法はありますか? –

+1

[pythonのファイル拡張子を削除する方法](https://www.google.com/webhp?#q=python+how+to+remove+file+extension+on+string)または[ファイル名はPythonのパスからの拡張子なし?](http://stackoverflow.com/questions/678236/how-to-get-the-filename-without-the-extension-from-a-path-in-python) –

+0

はい...私は、拡張子を残りの部分と区別するためのos.path関数があると信じています。最後の '。'を見つけることで簡単に行うことができます。 –

関連する問題