2

この質問は、Pythonを使用してディレクトリからテキストファイルにファイルのリストを取得する方法です。

テキスト ファイルの結果は、次のようになります。

E:\AA\a.jpg
E:\AA\b.jpg
...

以下のコードを修正する方法:

WD = "E:\\AA"
import glob
files = glob.glob ('*.jpg')
with open ('infiles.txt', 'w') as in_files:
    in_files.write(files +'\n')
4

4 に答える 4

2

glob.glob()リストを返します。それを繰り返す必要があります。

WD = "E:\\AA"
import glob
files = glob.glob ('*.jpg')
with open ('infiles.txt', 'w') as in_files:
    for eachfile in files: in_files.write(eachfile+'\n')
于 2013-07-24T10:49:39.953 に答える
0

パスがない場合、glob.glob はファイル名のリストを返します (ディレクトリ部分はありません)。os.path.abspath(filename)完全なパスを取得するには、 / os.path.realpath(filename)/を呼び出す必要がありますos.path.join(WD, filename)

>>> glob.glob('*.png')
['gnome-html.png', 'gnome-windows.png', 'gnome-set-time.png', ...]
>>> os.path.abspath('gnome-html.png')
'/usr/share/pixmaps/gnome-html.png'

パスを指定すると、glob.glob はディレクトリ部分を含むファイル名のリストを返します。

>>> glob.glob('/usr/share/pixmaps/*.png')
['/usr/share/pixmaps/gnome-html.png', '/usr/share/pixmaps/gnome-windows.png', '/usr/share/pixmaps/gnome-set-time.png',  ...]

import glob
import os

WD = r'E:\AA'
files = glob.glob(os.path.join(WD, '*.jpg'))
with open('infiles.txt', 'w') as in_files:
    in_files.writelines(fn + '\n' for fn in files)

また

import glob
import os

WD = r'E:\AA'
os.chdir(WD)
files = glob.glob('*.jpg')
with open('infiles.txt', 'w') as in_files:
    in_files.writelines(os.path.join(WD, fn) + '\n' for fn in files)
于 2013-07-24T10:53:24.497 に答える