【发布时间】:2014-02-12 23:47:21
【问题描述】:
我需要读取存储在文件中的字符串逐字。我试过在单引号和双引号之间写字符串,但这似乎不起作用。
这是MWE 我的意思:
with open('file.dat', mode="r") as f:
for line in f:
reader = line.split()
# Read string.
liter = str(reader[1])
print liter
file.dat 文件由单行组成,如下所示:
ID " Literal\t : "
其中第一列包含帮助我识别行的 ID,第二列应包含作为单个元素的字符串。
这个字符串看起来并不总是完全相同。例如,它可以在开头没有字符(即:"Literal\t : ")有空格而不是\t 字符(即" Literal : ")在开头或结尾没有空格(即:"Literal\t :")等。 .
我所追求的结果与我简单地得到的结果相同(在上面的例子中):
liter = ' Literal\t : '
我该怎么做?
【问题讨论】:
-
更大的数据样本会有所帮助。
line.split(None, 1)和ast.literal_eval(liter[1]),但通常最好避免使用literal_eval,除非您对内容拥有独占控制权。 -
如果您是编写 .dat 文件的人,为什么不使用不同的列分隔符,例如“|”?
-
您的意思是让字符串中的
\t成为制表符,还是保留两个字符,一个反斜杠和一个t?目前还不清楚您要做什么以及“逐字”是什么意思。 -
@Blckknght 查看更新的答案。我追求的结果与我所做的完全相同
liter = ' Literal\t : '。