0

ファイルにパスのリストがあり、.txtPythonを使用してパス名の1つのフォルダーを解析しようとしています。

9999\New_folder\A\23818\files\  
9999\New_folder\A\18283_HO\files\  
...

私が興味を持っているのは、との間9999\New_folder\A\で文字列を引っ張ることです\files\

23818  
18283_HO

どんな助けでもいただければ幸いです!

編集:みんなありがとう!あなたの入力で次のコードを思いついた。

input_text = open('C:\\Python\\textintolist\\Document1.txt', 'r')
output_text = open('output.txt', 'w')

paths =[]


for line in input_text:
    paths.append(line)

for path in paths:
        output_text.write(str(path.split('\\')[3])+"\n")
4

4 に答える 4

1
>>> s = '9999\\New_folder\\A\\23818\\files\\'
>>> s.split('9999\\New_folder\\A\\')[1].split('\\')[0]
'23818'
于 2012-08-13T21:08:36.630 に答える
0

多くの解決策があります。すべてのパスが9999\New_folder \ A#number#\ files \のような場合は、最後から3番目と最後の秒"\"を見つけることでサブストリングを取得できます。rfind()(http://docs.python.org/library/string.html#string.rfind)を使用してこれを行うことができます

もう1つのより一般的な方法は、正規表現を使用することです。 http://docs.python.org/library/re.html

于 2012-08-13T21:10:41.073 に答える
0

パスが常にこの形式の場合:

>>> paths
['9999\\New_folder\\A\\23818\\files\\', '9999\\New_folder\\A\\18283_HO\\files']
>>> for path in paths:
...     print path.split('\\')[3]
...
23818
18283_HO
于 2012-08-13T21:10:54.007 に答える
0
#sm.th. like this should work:
file_handler = open("file path")
for line in file_handler:   
    re.search(r'\\(.[^\\]+)\\files', line).groups(0)[0]
于 2012-08-13T21:23:38.853 に答える