我需要在javascript文件中啜食并通过ssh连接发送。它是一个标准的unix文件,每行末尾都有一个换行符。使用Python 2.76。
当我啜饮它并打印出来时,我每行都会得到一个字符。我在这里查看了类似的帖子,我没有得到那些我应该做的行为。
def slurpWorkerCode(filename):
file = open(filename, "r")
data = file.read().replace('\n', '')
return data
ecma = slurpWorkerCode("/devel/backup/list.aksh")
for line in ecma:
print line
输出:
<snip>
v
a
r
M
O
N
T
H
S
<snip>
我是不是错了?
请求任何帮助。
答案 0 :(得分:2)
问题在于:
data = file.read().replace('\n', '')
file.read()
将整个文件作为一个大字符串返回。您可以通过应用.split('\n')
获取此行的列表,但这比需要的更多。
将文件作为行列表并删除换行符的更标准方法是:
def slurpWorkerCode(filename):
with open(filename, "r") as f:
return [line.rstrip('\n') for line in f]
生成器版本如下:
def slurpWorkerCode(filename):
with open(filename, "r") as f:
for line in f:
yield line.rstrip('\n')
答案 1 :(得分:1)
read()
返回单个字符串,因此data
(以及ecma
)是单个字符串。迭代单个字符串时,一次只能获得一个字符。我怀疑你真正想要的是
data = file.readlines()
以便data
(以及ecma
)是一个字符串列表,每行一个字符串。