从文本文件进行分配时,如何摆脱“ \ n”作为dict值的一部分

时间:2019-05-15 15:12:45

标签: python dictionary

我编写了使用提供的信息来更改JSON的功能,特别是从文件中读取的EAN。 EAN以\ n结尾,但我无法摆脱它。

我尝试了replace('\ n',''),value [:-3],但这只影响数字。 我尝试在打开函数中添加参数newline =“” / None,仅在数字和\ n之间添加\ r

eans.txt是仅包含eans的文件,每行都包含换行符,没有任何空格或制表符     material_template =     {         “ eanUpc”:“”,     }

def get_ean():
    with open('eans.txt', 'r') as x:
        first = x.readline()
        all = x.read()
    with open('eans.txt', 'w') as y:
        y.writelines(all[1:])
    return first

def make_material(material_template):
    material_template["eanUpc"] = get_ean()

    print(material_template) 
    print(material_template["eanUpc"])

make_material(material_template)
  
    
      

{'eanUpc':'061500127178 \ n'}

             

061500127178

    
  

预先感谢

2 个答案:

答案 0 :(得分:0)

使用return first代替return first.strip("\n")来修剪\n

但是,我对原始系统的组织提出了疑问……读一行然后将整个文件写回到原始文件上。

  • 如果在处理一行时该过程失败了怎么办?数据丢失了
  • 如果此文件很大,那么您将需要大量的磁盘I / O

也许一次读取一行,然后将偏移量保存到文件中(last_processed)到另一个文件中?然后,您可以搜索该位置。

答案 1 :(得分:0)

应使用return first.strip()。它正在删除前导空格。