Python基础学习代码之文件和输入输出

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础学习代码之文件和输入输出相关的知识,希望对你有一定的参考价值。

import os
ls = os.linesep
def func1():
    filename = raw_input(‘enter file name:‘)
    f = open(filename,‘w‘)
    while True:
        alline = raw_input("enter a line (‘.‘ to quit):")
        if alline != ‘.‘:
            f.write("%s%s"%(alline,ls))
        else:
            break
    f.close()

def func2():
    f = open(‘e:\\thefile.txt‘,‘w+‘)
    print f.tell()
    f.write(‘the line 1\n‘)
    print f.tell()
    f.write(‘the line 2\n‘)
    print f.tell()
    f.seek(-12,1)
    print f.readline()
    print f.tell()
    f.seek(0,0)
    print f.readline()
    print f.tell()
    f.close()

import sys
import os
def func3():
    print ‘you are‘,len(sys.argv),‘arguments‘
    print ‘there are‘,str(sys.argv)

def func4():
    for tmpdir in (‘e:\\‘,‘d:\\‘):
        if os.path.isdir(tmpdir):
            break
    else:
        print ‘no directory available‘
        tmpdir = ‘‘
    if tmpdir:
        os.chdir(tmpdir)
        cwd = os.getcwd()
        print ‘current directory‘,cwd
        print ‘create example directory‘
        #os.mkdir(‘example‘)
        #os.chdir(‘example‘)
        cwd = os.getcwd()
        print ‘new directory‘,cwd
        print ‘directory list‘
        os.listdir(cwd)
        print ‘create test file‘
        f = open(‘test‘,‘w‘)
        f.write(‘test\n‘)
        f.write(‘test\n‘)
        f.close()
        print ‘update directory list‘
        print os.listdir(cwd)
        print ‘rename test to filetest‘
        #os.rename(‘test‘,‘filetest‘)
        print ‘update directory list‘
        print os.listdir(cwd)
        path = os.path.join(cwd,os.listdir(cwd)[0])
        print ‘full file pathname‘
        print path
        print ‘pathname,basename‘
        print os.path.split(path)
        print ‘filename,extension‘
        print os.path.basename(path)
        print os.path.splitext(os.path.basename(path))
        print ‘display file contents‘
        f = open(‘test‘,‘r‘)
        for eachline in f:
            print eachline
        f.close()
        print ‘delete test file‘
        os.remove(path)
        print ‘update directory list‘
        print os.listdir(cwd)
        os.chdir(os.pardir)
        print ‘delete test directory‘
        os.rmdir(‘example‘)
        print ‘done‘

def func5():
    print os.path.expanduser("~")

def func6():
    filename = raw_input(‘input file:‘)
    f = open(filename,‘r‘)
    for eachline in f:
        if not eachline.strip().startswith(‘#‘):
            print eachline

def func7():
    filename = raw_input(‘input file:‘)
    f = open(filename,‘r‘)
    for eachline in f:
        if not ‘#‘ in eachline[1:]:
            print eachline
    f.close()
def func8():
    filename = raw_input(‘input file:‘)
    line = int(raw_input(‘input line number:‘))
    f = open(filename,‘r‘)
    for eachline in f:
        if line:
            print eachline
            line -= 1
        else:
            break

def func9():
    filename = raw_input(‘input file:‘)
    lines = open(filename,‘r‘).readlines()
    return len(lines)

import os
def func10():
    ls = os.linesep
    with open(‘e:\\tmp.txt‘,‘a+‘) as f:
        for i in range(100):
            f.write("%s%s"%(i,ls))
    with open(‘e:\\tmp.txt‘,‘r‘) as f:
        num = 1
        for eachline in f:
            if num % 26 != 0:
                print eachline
                num += 1
            else:
                go = raw_input(‘continue,press c to quit‘)
                num += 1
                if go == ‘c‘:
                    break

def func11(file1,file2):
    alines = open(file1,‘r‘)
    blines = open(file2,‘r‘)
    row = 0
    for (aline,bline) in zip(alines,blines):
        row += 1
        if aline == bline:
            pass
        else:
            col = 0
            print row
            for (a,b) in zip(aline,bline):
                if a == b:
                    col += 1
                else:
                    print col
    alines.close()
    blines.close()

from ConfigParser import ConfigParser
def func12():
    cp = ConfigParser()
    #print os.path.join(‘C:\\Windows\\‘,‘win.ini‘)
    cp.read(os.path.join(‘C:\\Windows\\‘,‘win.ini‘))
    for section in cp.sections():
        #print cp.items(section)
        for key in cp.options(section):
            print ‘[%s]-%s=%s‘%(section,key,cp.get(section,key))

    cp.add_section(‘name‘)
    cp.set(‘name‘,‘test‘,25)
    f = open(os.path.join("e:\\","test.txt"),‘a‘)
    cp.write(f)
    f.close()

def func13():
    prompt = """
(S)avings
(C)heck
(F)inancialmarket
(D)eposit
(E)xit
enter your choice:"""
    function = """
(s)avings
(d)raw
(b)orrow
(l)oan
enter your choice:"""
    account = {‘s‘:‘Savings‘,‘c‘:‘Check‘,‘f‘:‘Financial‘,‘d‘:‘Deposit‘}
    fun = {‘s‘:‘savings‘,‘d‘:‘draw‘,‘b‘:‘borrow‘,‘l‘:‘loan‘}
    cf = ConfigParser()
    cf.read(‘e:\\FamilyAccount.ini‘)
    enter = raw_input(prompt).strip().lower()[0]
    while True:
        if enter in ‘scfd‘:
            print ‘welcome %s bussness‘ % account[enter].lower()
            section = account[enter]
            select = raw_input(fun).strip()[0].lower()
            if select in ‘sdbl‘:
                print ‘welcome %s bussness‘ % fun[select]
                key = fun[select]
                mokey = int(raw_input(‘Enter amount of money<must be digit.>:‘))
                cancel = raw_input(‘Cancel,please press "c"...\n‘)
                if cancel == ‘c‘:
                    return False
                else:
                    f = open(‘e:\\FamilyAccount.ini‘,‘w‘)
                    cf.write(f)
                    f.close()
        elif enter == ‘e‘:
            return False
        else:
            print ‘Invalid operation,try again‘

import sys
import os
def calc(argument):
    if argument[1] == ‘+‘:
        return int(argument[0]) + int(argument[1])
    elif argument[1] == ‘*‘:
        return int(argument[0]) * int(argument[1])
    elif argument[1] == ‘-‘:
        return int(argument[0]) - int(argument[1])
    elif argument[1] == ‘**‘:
        return int(argument[0]) ** int(argument[1])
    elif argument[1] == ‘/‘:
        return int(argument[0]) / int(argument[1])
#if __name__ == ‘__main__‘:
    if sys.argv[1:][0] == ‘print‘:
        with open(‘e:\\txt‘,‘r‘) as f:
            print f.read()
        os.remove(‘e:\\txt‘)
    else:
        with open(‘e:\\txt‘,‘w‘) as f:
            f.write("".join(sys.argv[1:]))
            f.write(‘\n‘)
            f.write(str(calc(sys.argv[1:])))
            f.write(‘\n‘)

def func14():
    afile = raw_input(‘input file:‘)
    bfile = raw_input(‘input file:‘)
    with open(afile,‘r‘) as af:
        with open(bfile,‘w‘) as bf:
            for eachline in afile:
                bf.write(eachline)
        with open(bfile) as bf:
            print bf.read()

import os
def func15():
    file = raw_input(‘enter file:‘)
    with open(file,‘r‘) as af:
        with open(‘e:\\test.txt‘,‘w‘) as bf:
            for eachline in af:
                if len(eachline) > 80:
                    alist = list(eachline)
                    count = len(alist) / 80
                    for i in range(count):
                        bf.write("".join(alist[:79]))
                        bf.write(‘\n‘)
                        alist = alist[79:]
                    bf.write("".join(alist))
                else:
                    bf.write(eachline)
                    bf.write(‘\n‘)
    with open(‘e:\\test.txt‘,‘r‘) as bf:
        with open(file,‘w‘) as af:
            for eachline in bf:
                af.write(eachline)
    os.remove(‘e:\\test.txt‘)

def createfile():
    file = raw_input(‘input filename:‘)
    content = raw_input(‘input file content:‘)
    f = open(file,‘a+‘)
    f.write(content)
    f.write(‘\n‘)
    f.close()

def viewfile():
    file = raw_input(‘input filename:‘)
    strtemp = ‘‘
    f = open(file,‘r‘)
    for eachline in f:
        strtemp = strtemp + eachline
    return strtemp

def editfile():
    file = raw_input(‘input filename:‘)
    line = int(raw_input(‘input line number:‘))
    newline = raw_input(‘input new line number:‘)
    f = open(file,‘r‘)
    lines = f.readlines()
    f.close()
    if line > len(lines):
        return False
    lines[line-1] = newline
    f = open(file,‘w‘)
    f.writelines(lines)
    f.close()

def showmenu():
    prompt = """
a)创建文件(提示输入文件名和任意行的文本输入)
b)显示文件(把文件的内容显示到屏幕)
c)编辑文件(提示输入要修改的行,然后让用户进行修改)
d)保存文件
e)退出
请输入操作选项(a、b、c、d、e):"""
    while True:
        try:
            commnet = raw_input(prompt).strip()[0].lower()
        except(KeyboardInterrupt,EOFError):
            commnet = ‘e‘
        if commnet == ‘a‘:
            createfile()
        elif commnet == ‘b‘:
            viewfile()
        elif commnet == ‘c‘:
            editfile()
        elif commnet == ‘d‘:
            pass
        elif commnet == ‘e‘:
            break
        else:
            continue
#if __name__ == ‘__main__‘:
#    showmenu()

def func16():
    filename = raw_input(‘input file:‘)
    filech = raw_input(‘input file character:‘)
    countnum = 0
    with open(filename,‘r‘) as f:
        for eachline in f:
            countnum += eachline.count(filech)
    print ‘character %s is count %d‘ % (filech,countnum)

import random
def func17(ch,countnum,length):
    firstlength = 0
    num = []
    while firstlength - countnum:
        chara = random.choice(xrange(255))
        if ch == chara:
            continue
        else:
            num.append(chara)
            firstlength -= 1
    for i in range(countnum):
        num.append(ch)
    newnum = []
    while length:
        i = int(random.random() * length)
        newnum.append(num[i])
        del num[i]
        length -= 1
    return newnum

import zipfile
def func18(filename):
    with zipfile.ZipFile(‘e:\\hello.zip‘,‘w‘) as f:
        f.write(filename)

def func19(dirname):
    with zipfile.ZipFile(‘e:\\test.zip‘,‘w‘) as f:
        for root,dirs,files in os.walk(dirname):
            f.write(root)
            for file in files:
                f.write(os.path.join(root,file))

import time
def func20():
    filename = raw_input(‘zip file name:‘)
    print ‘size:%.2f‘ % (float(os.stat(filename).st_size)/1024/1024),"MB"
    f = zipfile.ZipFile(filename,‘r‘)
    print ‘filename datetime size compresssize rate‘
    for info in f.infolist():
        #t = time.ctime(time.mktime(tuple(list(info.date_time) + [0,0,0])))
        #print ‘%s\t%s\t%d\t%d\t‘ % (info.filename,t,info.file_size,
         #                                info.compress_size)
        print info.filename,info.file_size,info.compress_size

    f.close()


本文出自 “xwb” 博客,请务必保留此出处http://xiewb.blog.51cto.com/11091636/1792272

以上是关于Python基础学习代码之文件和输入输出的主要内容,如果未能解决你的问题,请参考以下文章

python核心编程学习记录之文件和输入输出

Python基础之输入输出与高阶赋值

Python 学习记录之输入与输出

C语言入门基础之输入和输出

没学过Python先要学习哪些基础知识?

Python基础之文件目录操作