2017-03-27 12 views
0

私の質問は、入力ファイルから文字を取り出し、すべてのアルファベット以外の文字をスペース ""に変換し、大文字の文字を別のファイルに書き出します。正規表現などの組み込みライブラリは使用できません。続き は私のコードです英数字以外の文字を取り除き、組み込みのライブラリを使用せずにファイルに書き込む方法

このコードが実行されるが、それは必要条件のように、それは非アルファベットを削除し、大文字 例:内のすべての文字を記述する必要があるファイルをsplit.txtには何も書き込まない
#Reading the file 
ifile = open('test.txt','r') 

#Reading the characters of the file and stripping it by words 
data = ifile.read().split() 

x = str(data).upper() 

letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 
        'u', 'v', 'w', 'x', 'y', 'z'] 
file = open("split.txt",'w') 

for char in data: 
     if char.isalpha(): 
      file.write(char) 
     else: 
       char.replace(char,' ') 

: - もしtest.txtファイルからの入力が "Hello_Wo!rld"の場合、split.txtファイルの出力は "HELLO WO RLD"になります。

+0

最後の行は実際にファイルに書き込まずに単に 'char'を置き換えます。 – tyteen4a03

+0

また、 'letters'配列 – egur

答えて

1

最後にifile.close()を追加して動作するかどうかを確認します。

また、char.replace(char,' ')file.write(' ')である必要があります。これは現在何も書いていないためです。

egurが指摘しているように、x変数と同じ文字配列を使用していません。

+0

文字配列を使用せず、置き換えられた部分がうまく動作した後にx変数が使用されます。これは今削除されました –

+0

ああ、それはclose()でも使えますか? – valentinRssl

+0

は単にfile.closeを追加し、出力をfile.writeするchar.replaceを変更した後、すべてのスペースを削除し、非aplhabetic文字に 入力が含まれている単語全体が 出力はので、私は 'と思います[OK]をHelloworldhelloworld –

関連する問題