我的数据文件包含以下格式的值:
1 1
-1 1
1 -1
-1 -1
...
每次我注意到这些变量的出现时,我都需要计算一个变量的增量。比如遇到1 -1时为PositiveNegative += 1,遇到-1 -1
<时为
NegativeNegative += 1
时为/.
到目前为止我有这个:
PositivePositive = 0
f1 = open("200_sample.txt", 'r')
v = f1.read()
for line in v:
if "1 1" in line:
PositivePositive +=1
但它不计算 1 1 的任何出现。有什么建议吗?
请您参考如下方法:
当您执行 v = f1.read() 时,会将文件的所有内容读入一个名为 v 的长字符串中。当您使用 for line in v: 对其进行迭代时,它一次查看一个单个字符。所以,当然,它不会在一个字符中找到三个字符。
要解决此问题,只需不要read() 文件对象即可。你可以直接迭代它,文件读取器会逐行迭代:
lines = {'-1 1':0, '1 -1':0, '1 1':0, '-1 -1':0}
with open("200_sample.txt", 'r') as f:
for line in f:
lines[line.strip()] += 1
此外,使用 with 上下文管理器在该 block 结束后自动关闭文件。
您可以将每种行存储为字典键,然后在看到它时更新该键的值。
