[Python-ml-jp 5031] tarfileのgetnames()のセパレータについて

十河 満 coolhead @ a1.mbn.or.jp
2010年 9月 14日 (火) 05:26:22 JST


 ソガワと申します。またお世話になります。
次のプログラム(TestTarFile.py)をディレクトリ(TestTarFile)に入れて、
色々なプラットフォームでtarfileを作るテストしていたら、ディレクトリ
の最後にセパレータが付いたり付かなかったりします。

<テスト・プログラム>
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys, tarfile
print "*PLATFORM* ............", sys.platform
if sys.platform == "win32":
print "*OS* ..................", sys.getwindowsversion()
print "*PYTHON VERSION* ......", sys.version.replace("\n", " ")
tar = tarfile.open("TestTarFile.tar", "w")
for path in ["TestTarFile"]: tar.add(path)
tar.close()
print "*TARFILE NAMES* .......", \
tarfile.open("TestTarFile.tar", "r").getnames()

<結果>
[Windows Vista]
*PLATFORM* ............ win32
*OS* .................. (6, 0, 6002, 2, 'Service Pack 2')
*PYTHON VERSION* ...... 2.6.2 (r262:71605, Apr 14 2009, 22:40:02) [MSC
v.1500 32 bit (Intel)]
*TARFILE NAMES* ....... ['TestTarFile', 'TestTarFile/TestTarFile.py']
[Windows Mobile 6.1 Professional]
*PLATFORM* ............ win32
*OS* .................. (5, 2, 19971, 3, '')
*PYTHON VERSION* ...... 2.5 (release25-maint, Oct 4 2007, 14:58:33) [MSC
v.1400 32 bit (ARM)]
*TARFILE NAMES* ....... ['TestTarFile/', 'TestTarFile/TestTarFile.py']
[Ubuntu 10.04 LTS Desktop 日本語 Remix]
*PLATFORM* ............ linux2
*PYTHON VERSION* ...... 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) [GCC
4.4.3]
*TARFILE NAMES* ....... ['TestTarFile', 'TestTarFile/TestTarFile.py']
[SL-C3000 (LinuxZaurus)]
*PLATFORM* ............ linux2
*PYTHON VERSION* ...... 2.4 (#1, Jan 5 2005, 19:21:20) [GCC 2.95.1
19990816 (release)]
*TARFILE NAMES* ....... ['TestTarFile/', 'TestTarFile/TestTarFile.py']
[FreeBSD 7.2 RELESE i386]
*PLATFORM* ............ freebsd7
*PYTHON VERSION* ...... 2.5.4 (r254:67916, Apr 13 2009, 18:09:11) [GCC
4.2.1 20070719 [FreeBSD]]
*TARFILE NAMES* ....... ['TestTarFile/', 'TestTarFile/TestTarFile.py']
[OpenSolaris 2009.06]
*PLATFORM* ............ sunos5
*PYTHON VERSION* ...... 2.4.4 (#1, Mar 10 2009, 09:35:36) [C]
*TARFILE NAMES* ....... ['TestTarFile/', 'TestTarFile/TestTarFile.py']
*PLATFORM* ............ sunos5
*PYTHON VERSION* ...... 2.6.1 (r261:67515, Mar 10 2009, 14:11:34) [C]
*DEFAULT ENCODING* .... ascii
*TARFILE NAMES* ....... ['TestTarFile', 'TestTarFile/TestTarFile.py']

これは、Pythonのバージョンの差異なのか、プラットフォームの差異なのか
それとも別の要因なのか良く判りません。個人的には最後にセパレータが付
いた方が自然なような気がしてますが。
ご存知の方、教えて下さい。



Python-ml-jp メーリングリストの案内