2

こんにちは、私が抱えている問題に関して助けを求めています。データが格納されているディレクトリ (以下を参照) で、特定のファイル タイプのみを検索したいと考えています。以下は私のコードですが、完全に機能していません。

現在の出力は、2 つの結果のうちの 1 つです。ファイルの最初の行だけを印刷するか、空白の結果を印刷します。

わかりましたので、これが私がやりたいことです。csv ファイルのみをリストされているディレクトリで検索したい。次に、ループを取得して各ファイルを1行ずつ読み取り、ファイルの各行を出力してから、残りのcsvファイルに対してこれを繰り返します。

以下のコードを編集して CSV ファイルのみを検索する方法と、ファイル内の各行を印刷してから、すべての CSV ファイルが見つかって開くまで次の CSV ファイルを繰り返す方法を教えてください。これは可能ですか?

import os

rootdir= 'C:\Documents and Settings\Guest\My Documents\Code'

def doWhatYouWant(line):
    print line

for subdir, dirs, files in os.walk(rootdir):
   for file in files:
        f=open(file,'r')
        lines = f.readlines()
        f.close()
        f=open(file,'wU')
        for lines in lines:
            newline=doWhatYouWant(line)
            f.write(newline)
        f.close

ご協力いただきありがとうございます。

4

1 に答える 1

3

以下のこのコードは機能します。インラインで変更されたものについてコメントしました。

import os

rootdir= 'C:\\Documents\ and\ Settings\\Guest\\My\ Documents\\Code\\' 
#use '\\' in a normal string if you mean to make it be a '\'   
#use '\ ' in a normal string if you mean to make it be a ' '   


def doWhatYouWant(line):
    print line
    return line 
    #let the function return, not only print, to get the value for use as below 


for subdir, dirs, files in os.walk(rootdir):
    for file in files:
        f=open(rootdir+file,'r') #use the absolute URL of the file
        lines = f.readlines()
        f.close()
        f=open(file,'w') #universal mode can only be used with 'r' mode
        for line in lines:
            newline=doWhatYouWant(line)
            f.write(newline)
        f.close()
于 2013-06-22T02:05:19.937 に答える