例如,我目前正在尝试读取文件中冒号“:”之后出现的所有数据。 在仅包含以下内容的文本文件中:
SAM Account Type : 805306368
with open("Sample.txt") as myfile:
for line in myfile:
flag=0
if ("SAM Account Type" in line):
for ch in line:
if (flag and ch!=' ' and ch!='\n'):
B+=ch
elif (ch == ':'):
flag+=1
S1 = myfile.read(10)
# print (ch)
elif (ch=='\n'):
flag =0
else:
pass
print (B)
这就像一个魅力只显示我“805306368” 但是,当我尝试使用列表检查“SAM 帐户类型”以外的更多变量时,它无法提供正确的输出。
例如下面的文件:
SAM Account Name : Ramachandran. S
SAM Account Type : 805306368
Description :
User Account Control : 544
When Created:09/21/2015 06:33:53
Lastlogontimestamp : 130966421275783509
When Changed : 01/07/2016 12:08:47
Account Expires : 922337203685477580
Last logoff : 00:00:00.0000000
Last logon : 130971364125825724
和下面的代码:
A = []
A.extend({"SAM Account Type",
"User Account Control",
"Last logon",
"Lastlogontimestamp",
"Last logoff",
"Account Expires"})
B = ""
with open("Sample.txt") as myfile:
for line in myfile:
for i in range(len(A)):
flag=0
if (str(A[i]) in line):
#if ("SAM Account Type" in line):
for ch in line:
if (flag and ch!=' ' and ch!='\n'):
B+=ch
elif (ch == ':'):
flag+=1
S1 = myfile.read(10)
elif (ch=='\n'):
flag =0
else:
pass
print (B)
B=""
读取属于列表“A”中实体的“:”之后的所有字符,将它们存储在“B”中,并为每一行打印 B。
给出以下内容:
'805306368'
'544'
'130966421275783509'
'922337203685477580'
'130971364125825724'
当它还应该给出“上次注销”时,即“00:00:00.0000000” 但它不起作用。任何帮助将不胜感激。
请您参考如下方法:
我认为您可以阅读所有行并根据您的要求进行处理。您可以根据“:”拆分句子并使用标记。
注意:由于时间中也有 :,您可能需要使用“:”(带两个空格的冒号)
示例代码:
In [1]: with open("./input.txt") as f:
...: data = f.readlines()
...:
In [2]: data = [d for d in data if d!='\n'] #Drop empty lines
In [3]: data = [d[:-1].split(" : ") for d in data] # exclude \n (last char in the line) and split based on colon
In [4]: data
Out[4]:
[['SAM Account Name', 'Ramachandran. S'],
['SAM Account Type', '805306368'],
['Description :'],
['User Account Control', '544'],
['When Created:09/21/2015 06:33:53'],
['Lastlogontimestamp', '130966421275783509'],
['When Changed', '01/07/2016 12:08:47'],
['Account Expires', '922337203685477580'],
['Last logoff', '00:00:00.0000000'],
['Last logon', '130971364125825724']]
进一步,
- 您可以使用从处理中获得的键值对将其转换为字典。稍后您可以将此 dict 转储到 json 以执行其他任务。
- 看来您是从类似 C 的语言转向 Python 的。在 Python 中,大部分内容都是内置的,例如读取文件、拆分字符串等。因此,请引用一些教程,例如 https://developers.google.com/edu/python/。等了解更多
