如何从python中的文件中提取必要的内容?
How to extract necessary content from file in python?
我有一个私钥文件 (private.key),其内容格式如下
-----BEGIN PRIVATE KEY-----
blahblahblahblahblahblahblahblah
blahblahblahblahblahblahblahblah
blahblahblahblahblahblahblahblah
-----END PRIVATE KEY-----
我正在阅读文件如下:
pk = open( 'private.key', 'rb' ).read()
如何删除第一行和最后一行,只提取私钥内容到变量pk中?
期待 python 到
中的类似内容
egrep -v "PRIVATE KEY" private.key | tr -d "\n\r"
你可以使用
pk = open( 'file.txt', 'r' ).readlines() #or 'rb' if there's a need
if len(pk) > 2:
for line in pk[1:-1]:
print line,
#or do anything you like to do with line
避免处理行列表中的第一行和最后一行
with open('private.key', 'r') as infile:
pk = infile.read().split('\n', 1)[1].rsplit('\n', 1)[0]
with open('private.key', 'r') as f: # use with here, it will auto close the file.
pk = f.readlines()
pk = pk[1:-1]
现在,pk
是一个按行保存私钥的列表
要打印出来,您可以像这样使用 print()
:
for i in pk:
print(pk)
或者,像 egrep
那样:
with open('private.key', 'r') as f: # use with here, it will auto close the file.
pk = f.read()
for i in pk:
if 'PRIVATE' not in i:
print(i)
一个更通用的解决方案,它允许在文件中进行注释(BEGIN PRIVATE KEY
和 END PRIVATE KEY
防护线之外的任何内容)并且还可以处理文件中的多个私钥(但让您停止阅读一旦你找到第一个,如果你想要的话),你可以在生成器中使用一个非常简单的状态机算法:
def private_keys(file):
key = []
inside_guards = False
for line in file:
if line == "-----BEGIN PRIVATE KEY-----":
inside_guards = True
continue
if line == "-----END PRIVATE KEY-----":
inside_guards = False
yield data
data = []
continue
if inside_guards:
data.append(line)
我有一个私钥文件 (private.key),其内容格式如下
-----BEGIN PRIVATE KEY-----
blahblahblahblahblahblahblahblah
blahblahblahblahblahblahblahblah
blahblahblahblahblahblahblahblah
-----END PRIVATE KEY-----
我正在阅读文件如下:
pk = open( 'private.key', 'rb' ).read()
如何删除第一行和最后一行,只提取私钥内容到变量pk中?
期待 python 到
中的类似内容egrep -v "PRIVATE KEY" private.key | tr -d "\n\r"
你可以使用
pk = open( 'file.txt', 'r' ).readlines() #or 'rb' if there's a need
if len(pk) > 2:
for line in pk[1:-1]:
print line,
#or do anything you like to do with line
避免处理行列表中的第一行和最后一行
with open('private.key', 'r') as infile:
pk = infile.read().split('\n', 1)[1].rsplit('\n', 1)[0]
with open('private.key', 'r') as f: # use with here, it will auto close the file.
pk = f.readlines()
pk = pk[1:-1]
现在,pk
是一个按行保存私钥的列表
要打印出来,您可以像这样使用 print()
:
for i in pk:
print(pk)
或者,像 egrep
那样:
with open('private.key', 'r') as f: # use with here, it will auto close the file.
pk = f.read()
for i in pk:
if 'PRIVATE' not in i:
print(i)
一个更通用的解决方案,它允许在文件中进行注释(BEGIN PRIVATE KEY
和 END PRIVATE KEY
防护线之外的任何内容)并且还可以处理文件中的多个私钥(但让您停止阅读一旦你找到第一个,如果你想要的话),你可以在生成器中使用一个非常简单的状态机算法:
def private_keys(file):
key = []
inside_guards = False
for line in file:
if line == "-----BEGIN PRIVATE KEY-----":
inside_guards = True
continue
if line == "-----END PRIVATE KEY-----":
inside_guards = False
yield data
data = []
continue
if inside_guards:
data.append(line)