2017-12-08 8 views
-1

私は.csvファイルをたくさん持っており、ファイル名を解析したいと思います。ファイル名の一部を変数に取り込む方法は?

ファイル名がこの形式である:

name.surname.csv 

は、どのように私は、ファイル名のコンポーネントを持つ2つの変数を移入する関数を書くことができますか?もちろん

A = name 
B = surname 
+2

errr '.split(「」)「name.surname.csv」' –

答えて

1

名前は.によって分割し、Aに格納され、これを試してみて、B

a="name.surname.csv" 
A,B,C=a.split('.') 

ファイルならば、これはあなたのファイル名は形式でfirst.second.csv

1

であることを前提としてい名前は常に正確に同じ2つのピリオドで同じ形式になります。

>>> name, surname, ext = "john.doe.csv".split(".") 
>>> name 
'john' 
>>> surname 
'doe' 
>>> ext 
'csv' 
>>> 
+0

私のファイル名が文字列であるので、私ははい、そこにそれを追加何とか必要なときにはい、それはですか? – yabashist

+0

@yabashist右の文字列があると仮定したので、必要な場所にコードを挿入します。 –

4

str.splitを使用し、結果をA,Bと別の "匿名"変数に展開して、拡張子を保存(無視)します。

filename = 'name.surname.csv' 
A, B, _ = filename.split('.') 
+1

もう少し説明を追加すると良い答えになるでしょう。コードのみの回答はそれほど有用ではありません。 –

+0

本当に、チップのおかげで。 – digitalsentinel

1

単純なstr.split()メソッドとこの関数を使用します。

def split_names(input:str): 
    splitted = input.split(".") 
    return splitted[0], splitted[1] 

A, B = split_names("name.surname.csv") 
0

あなたは、システム内の特定の場所に保存されたファイルは、あなたが最初のファイル名のみを取得する必要がある場合:

# if filename = name.surname.csv then discard first two lines 
filename = "C://CSVFolder//name.surname.csv" 
absfilename = filename.split('//')[-1] 
# by concept of packing unpacking 
A,B,ext = absfilename.split('.') 

をあなただけ

A,B,ext = "name.surname.csv".split('.') 
print A,B,ext 

を提供することができますハッピーコーディング:)

+0

'filename =" C://CSVFolder//name.surname.csv "whaaaat?タプル部分も不必要である。 –

+0

@ Jean-FrançoisFabre:ありがとうございました。 – csharpcoder

+0

windowsパスにダブル_slashes_がないことをご存じですか? –

1

まず、ディレクトリ内のすべてのファイルを拡張子「.csv」で検索してからそれを '。'で分割する

import os 
for file in os.listdir("/mydir"): 
    if file.endswith(".csv"): 
     # print the file name 
     print(os.path.join("/mydir", file)) 
     # split the file name by '.' 
     name, surname, ext = file.split(".") 
     # print or append or whatever you will do with the result here 
関連する問題