如何删除非字母数字字符并在不使用任何内置库的情况下写入文件

时间:2017-03-27 13:10:04

标签: python python-2.7 python-3.x

我的问题是python从输入文件中获取字符并将所有非字母字符转换为空格“”并使所有字符都为大写并将其写入另一个文件。我们不允许使用内置库,例如正则表达式。 以下是我的代码

    #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,' ')

此代码执行但它不会向split.txt文件写入任何内容,因为在要求中它应删除非字母并以大写字母写入所有字符 例如: - 如果来自test.txt文件的输入是“Hello_Wo!rld”,那么split.txt文件的输出应为“HELLO WO RLD”

1 个答案:

答案 0 :(得分:1)

在最后添加ifile.close()并查看它是否有效。

同样char.replace(char,' ')应为file.write(' '),因为现在这不会写任何内容。

正如egur指出的那样,你没有使用字母数组,x变量也是如此。