简体   繁体   中英

Open files and store contents in variable

Code:

import secrets 
import sys
import time
import string
from tenacity import (retry , stop_after_attempt)

#Required Defs
var = open('conf.txt','r+')
content = var.read()
print(content)

def get_random_string(length):
    letters = string.ascii_lowercase
    num = string.ascii_uppercase
    punc = string.punctuation
    spec = string.hexdigits
    one = str(num) + str(punc) + str(spec) 
    result_str = ''.join(secrets.choice(one) for i in range(length))
    print("Random string of length", length, "is:", result_str)

#Closing All Defs Here
@retry(stop=stop_after_attempt(5))
def start():
    pasw = input("Do YOu Want A Random Password: y/n: ")
    if pasw == 'y':
        leng = input("Please Type The Length Of The Password You Want: ")
        try:
            len1 = int(leng)
            get_random_string(len1)
            time.sleep(4)
        except ValueError:
            print("Only Numbers Accepted")
            time.sleep(4)
    elif pasw == 'n':
        sys.exit("You Don't Want TO Run The Program")
        time.sleep(3)
    else:
        raise Exception("Choose Only From 'y' or 'n'")

start()

Problem:

I want to read contents of file called conf.txt and want to include only 2 chars 3 letters and it is based on conf.txt . How can I achieve this? Please tell conf.txt contains:

minspec = 1 #This tells take 2 special chars chars
minnumbers = 3 #This tells take 3 Numbers
minletter = 2 #This tells take 2 lower chars
minhex = 2 #This tells take 2 hex numbers
with open('file.txt', 'r') as data:
    contents = data.read()

In the above example we are opening file.txt in read mode with the object name data. We can use data.read() to read the file and store it in the variable name contents. One of the advantage of using with is that we don't need to close the file, it automatically closes file for you.

For reading only selected bytes for a file object can be used:

  • the seek method (to change the file object's position);
  • the read method has the optional param - number of bytes to read.

Example:

f = open('workfile', 'rb')  # b'0123456789'
f.read(2)  # reading only the first two bytes(b'01')
f.seek(6)  # go to the 6th byte in the file
f.read(3)  # reading 3 bytes after 6 position(b'678')

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM