如何在Python中读取包含换行和制表符的文件为字符串?

3 投票
6 回答
9652 浏览
提问于 2025-04-16 22:19

我正在尝试读取一个包含制表符和换行符的数据文件,这个数据是JSON格式的。

当我使用 file.read()readlines() 等方法读取时,所有的换行符和制表符也都被读取进来了。

我试过使用 rstrip()、分割等方法,但都没有成功,可能是我漏掉了什么:

基本上我做的就是这些:

 f = open('/path/to/file.txt')
 line = f.readlines()
 line.split('\n')

这是数据(包括原始的制表符,所以格式很糟糕):

        {
      "foo": [ {
       "id1" : "1",
   "blah": "blah blah",
       "id2" : "5885221122",
      "bar" : [
              {  
         "name" : "Joe JJ", 
          "info": [                 {
         "custid": "SSN",    
         "type" : "String",             }        ]
        }     ]     }     ]  }

我在想有没有什么优雅的方法可以忽略这些。

我也希望能使用 json.dumps()

6 个回答

0

关于json模块的使用呢?

import json

tmp = json.loads(open("/path/to/file.txt", "r"))

output = open("/path/to/file2.txt", "w")
output.write(json.dumps(tmp, sort_keys=True, indent=4))
2

这是一个小技巧,可能效率不高:

f = open("/path/to/file.txt")
lines = f.read().replace("\n", "").replace("\t", "").replace(" ", "")

print lines
6

如果数据是JSON格式,为什么不直接使用json.load()呢?

import json
d = json.load(open('myfile.txt', 'r'))

撰写回答