0

タイトルが紛らわしくてすみません。私がやりたいことは、テキスト ファイル (keywords.txt) を読み取ってからリストに分割することです。つまり、基本的にファイルに「iphone、キー、ウォレット、ペン、フォルダー」が含まれているとしましょう。リストを[iphone、キー、ウォレット、ペン、フォルダー]にしたいと思います。

要素ごとに 1 つの変数を設定する方法はありますか。変数がクエリだとします。とにかく、クエリが各要素であるため、プログラムを通過して各要素に対して機能することがありますか。以下は私が持っているコードです。明らかに機能しませんが、可能であればそれを実現したいと考えています。

それぞれに対して実行したい理由は、最終的にスクリプトが要素ごとに新しいテキスト ファイルを作成し、要素が何であるかに基づいて名前を付けるためです。その方法を知っている唯一の方法は、1 つの変数を使用することです。

data = [line.strip() for line in open('keywords.txt', 'r')]

try:
    query = sys.argv[1]
except IndexError:
    query = item in data 

実行する残りのコードは次のとおりです。作成されたリストにあるものを取得し、新しいテキストファイルと csv ファイルを作成します。

newFile = open("%s.txt" %query, 'w').write(txt.encode('utf8'))

with open("%s.txt" %query, 'rb') as input_file:
    reader = csv.reader(input_file, delimiter='\n', quoting = csv.QUOTE_NONE)

    with open("%s.csv" %query, 'wb') as output_file:
        writer = csv.writer(output_file)

        for row in reader:
            writer.writerow(row)
4

2 に答える 2

2

代わりに、コマンドラインから取得したquery値をリストに変換してから、クエリリストをループします。

try:
    query = [sys.argv[1]]
except IndexError:
    query = data

for q in query:
    # do something with q
于 2012-12-11T13:38:51.953 に答える
0
def process_keywords_in_file(file_name):  
    with open(file_name) as f:
        for line in f:
            process(line.strip())

def process(keyword):
    #your code

キーワードの名前で新しいファイルを書きたい場合:

with open('%s.txt' % keyword, 'w') as fw:
    fw.write('content')
于 2012-12-11T13:39:54.700 に答える