写入文件时剥离不需要的字符

Stripping Unwanted Characters When Writing To A File

我在删除 Python 中不需要的字符时遇到了一些问题。 以下代码是从文件中提取的(尽管文件中不包含 \rn\n[]' 字符。)

我想去掉上面列出的所有不必要的字符,这样我就只有数字和文本,然后将它们写入另一个文件。我尝试了很多方法,例如 line.strip 但其中 none 有效。

这是我现在写入文件的方式;

product = str(product)
f.write(product)

这是结果

['34512340', 'Plain Brackets', '0.5\r\n']

如果有人能简单地解释一下我需要添加什么来删除不需要的字符,我将不胜感激。谢谢

这是一个例子:

elements = ['34512340', '0.5\r\n', 'Plain Brackets'];

number_of_elements = len(elements);

for i in xrange(0, number_of_elements):
    elements[i] = elements[i].rstrip('\r\n');  # instead of specific symbols, you can also create a list to filter here
    print elements[i];

只是为了一些变化:

list(map(lambda x:str(x).rstrip('\r\n'),['34512340', 'Plain Brackets', '0.5\r\n']))

我非常喜欢在对列表中的所有项目应用逻辑时使用内置函数映射。只是单行而不是循环。性能方面不确定它是如何叠加的我从来没有处理过足够大的列表,这会有所不同所以我更喜欢一个衬垫。

Map function documentation

Map 将一个函数作为一个参数,然后将一个列表或可迭代类型作为第二个参数,并将该函数应用于列表中的所有项目。我传递了一个lambda函数声明只是为了让它更简洁。

#list of lines
lines = ['34512340', '0.5\r\n', 'Plain Brackets'];

#looping through the whole list
for i in range(len(lines)):

    #stripping unwanted characters \n and \r from each line
    lines[i] = lines[i].rstrip('\n').rstrip('\r')

    #printing the line without the unwanted characters
    print lines[i]

输出:

34512340
0.5
Plain Brackets