用Python代码写一个打开磁盘文件 统计abc出现次数
时间: 2023-06-02 14:01:31 浏览: 111
以下是Python代码示例:
```python
with open('file.txt', 'r') as f:
content = f.read()
count = content.count('a') + content.count('b') + content.count('c')
print("a, b, c出现的次数为:", count)
```
其中,'file.txt'是要打开的文件名,'r'表示以只读方式打开文件。使用with open语句可以确保文件在使用后自动关闭,避免资源浪费。
将文件内容读取到变量content中,然后通过count()方法统计'a'、'b'、'c'出现的次数并相加,最后输出结果。
相关问题
1. 编写一个程序,将一段文字写入磁盘文件《姓名》.dat保存起来。要求文件的第一部分保存文件的结构(含密钥的变形码),第二部分是文字用密钥加密的密文。文件被重新打开时要求输入密码并验证密码并限定密码的输入次数
好的,这是一个比较复杂的程序,需要涉及到文件操作、加密解密、密码验证等方面。我会尽力解释清楚每一步操作的具体实现过程。
首先,我们需要定义一个密钥,用于对原文进行加密。这个密钥可以是一个字符串,也可以是一个数字。为了方便起见,我们假设密钥是一个字符串,比如"abc123"。
接下来,我们需要编写一个加密函数,用于将原文加密成密文。这个函数可以使用简单的位移加密算法,即将原文中的每一个字符按照密钥中的对应字符进行位移。例如,如果密钥是"abc123",原文中的第一个字符是'A',则加密后的密文中对应的字符就是'D'(因为'A'向后移动3位就变成了'D')。具体实现可以参考下面的代码:
```python
def encrypt(plain_text, key):
encrypted_text = ""
key_len = len(key)
for i in range(len(plain_text)):
char = plain_text[i]
key_char = key[i % key_len]
encrypted_char = chr(ord(char) + ord(key_char))
encrypted_text += encrypted_char
return encrypted_text
```
其中,plain_text是原文,key是密钥,encrypted_text是加密后的密文。
接下来,我们需要将加密后的密文写入磁盘文件中。为了能够重新打开文件并解密,我们需要在文件开头保存文件的结构信息,比如密钥的变形码。这个变形码可以使用随机数生成,也可以用一些简单的算法生成。为了方便起见,我们假设变形码是一个数字,比如123456。
我们可以将变形码和加密后的密文拼接在一起,然后写入文件。具体实现可以参考下面的代码:
```python
import random
def write_encrypted_file(file_name, plain_text, key):
encrypted_text = encrypt(plain_text, key)
transform_code = str(random.randint(100000, 999999))
file_content = transform_code + encrypted_text
with open(file_name, "w") as f:
f.write(file_content)
write_encrypted_file("姓名.dat", "这是一段需要加密的文字", "abc123")
```
接下来,我们需要编写一个解密函数,用于将密文解密成原文。这个函数只需要将密文中每一个字符按照密钥中的对应字符进行反向位移即可。具体实现可以参考下面的代码:
```python
def decrypt(encrypted_text, key):
plain_text = ""
key_len = len(key)
for i in range(len(encrypted_text)):
char = encrypted_text[i]
key_char = key[i % key_len]
decrypted_char = chr(ord(char) - ord(key_char))
plain_text += decrypted_char
return plain_text
```
最后,我们需要编写一个读取文件的函数,用于从磁盘中读取加密后的文件并解密成原文。在读取文件时,我们需要先读取文件的结构信息,即变形码,然后根据变形码验证密码的输入次数。如果密码输入次数超过了限制,则无法继续解密,否则我们就可以使用密码解密文件并返回原文。具体实现可以参考下面的代码:
```python
def read_encrypted_file(file_name, key, max_tries=3):
with open(file_name, "r") as f:
file_content = f.read()
transform_code = file_content[:6]
encrypted_text = file_content[6:]
for i in range(max_tries):
password = input("请输入密码:")
if str(hash(password))[-6:] == transform_code:
return decrypt(encrypted_text, key)
else:
print("密码错误,请重新输入(还剩%d次机会)" % (max_tries-i-1))
print("密码输入次数超过限制,无法解密文件!")
return None
```
其中,max_tries是密码输入的最大次数,默认为3次。
综上所述,我们可以将上面的几个函数组合起来,实现一个完整的程序,用于将一段文字加密并写入磁盘文件,再从磁盘文件中读取并解密成原文。完整代码如下所示:
阅读全文