文件操作方法

#文件打开函数FILEOPEN(var1,var2)是内置函数,有两个参数;


#var1是字符串,是文件名(含路径,如果没有路径则默认为当前目录:finevirt.exe所在目录位置)


#var2是字符串,表明打开文件方式



#var2 = "r",以只读方式打开文件,打开后文件指针指向文件头部


#var2 = "rb",以二进制格式,只读方式打开文件,打开后文件指针指向文件头部


#var2 = "r+",打开文件用于读写,打开后文件指针指向文件头部


#var2 = "w",打开文件,只用于写入。如果文件已存在,将覆盖原内容,如果不存在,则创建新文件


#var2 = "wb",同上,区别在于以二进制格式打开文件


#var2 = "w+",打开一个文件用于读写。如果文件已存在,将覆盖原内容,如果不存在,则创建新文件


#var2 = "wb+",同上,区别在于以二进制格式打开文件


#var2 = "a",打开一个文件用于追加内容,如果文件存在,指针指向尾部,如不存在,创建新文件


#var2 = "ab",同上,区别在于以二进制格式打开文件


#var2 = "a+",打开文件用于读写,如存在,指向尾部,如不存在,创建新文件,用于读写


#var2 = "ab+",同上,区别在于以二进制格式打开文件



# 例程1:只读方式打开文件,如果文件不存在,则报错


fp = FILEOPEN("test.txt","r")     # 打开文件(文本、只读方式)


if fp == False

{


    print("%\n","打开文件出错!")


}

else

{


    str = fp.read()                     #读取当前目录下,copy00.txt文件的全部内容,保存在字符串中


    fp.close()                          #关闭已经打开的文件


    print("%\n",str)


}



# 例程2:  只读方式打开文件,如果文件不存在,则报错

# string = fp.read(var)参数是将要读取的字节数,返回所读取的字符串

fp = FILEOPEN("test.txt","r")      # 打开文件(文本、只读方式)

if fp == False                       # 如果打开文件出错,返回False 

{

    print("%\n","打开文件出错!")

}

else                                 # 

{

    str = fp.read(21)     # 读取20个字节的内容(该方法通常用于读取二进制文件,如果读取文本文件,可能会读出“半个汉字”)

    str1 = fp.read(19)    # 接着上次读出的位置,继续读出20个字节

    fp.close()            # 关闭已经打开的文件


    print("%\n",str)      # 由于第21个字符是汉子的第一个字节,因此,最后显示?  

    print("%\n",str1)     # 由于str1的第一个字节是汉子的第二个字节,因此,显示乱码。

    print("%\n")


    str = str +str1       # 将两个字符串拼接在一起,打印出正确的内容

    print("%\n",str)

}



# 例程3:  从文件当前位置读取一行内容

# string = fp.readline()无参数 ,返回所读取的一行字符串

fp = FILEOPEN("test.txt","r")      # 打开文件(文本、只读方式)

if fp == False                       # 如果打开文件出错,返回False 

{

    print("%\n","打开文件出错!")

}

else                                 

{

    str = fp.readline()               # 读取一行内容,保存在字符串中

    fp.close()                        # 关闭已经打开的文件

    print("%\n",str)

}



# 例程4:  读取全部文件,每一行作为一个列表项(保留换行符),保存在一个列表中

# list = fp.readlines()无参数,返回一个列表,包含全部文件,每一行作为一个列表项


fp = FILEOPEN("test.txt","r")      # 打开文件(文本、只读方式)

if fp == False                       # 如果打开文件出错,返回False 

{

    print("%\n","打开文件出错!")

}

else                                 

{

    list = fp.readlines()             # 读取全部文件,每一行作为一个列表项,返回该列表

    fp.close()                        # 关闭已经打开的文件

    

    for i in list                     # 遍历列表

    {

         print("%",i)                 # 打印出列表的每一项

    }

}



# 例程5  写入字符串,如果有文件,覆盖原文件,如果没有,创建新文件

# 使用fp.write(str)将字符串str写入文件copy40.txt中。返回:无返回

gui = GUI()                          # 定义GUI对象,用于图形界面显示

#gui.HideConsoleWindow()             # 隐藏控制台窗口

string = "abcdefg中文\n床前明月光,疑是地上霜;举头望明月,低头思故乡。"

fp = FILEOPEN("test1.txt","r")      # 打开文件(文本、只写方式)

if fp != False                       # 如果文件能正确打开,说明文件已经存在 

{

    box = gui.MessageBox("文件test1.txt已经存在,是否要覆盖原文件?","确定|取消")

    while gui.MessageBoxClosed(box) != -1

    {

        PowerDown(3)

    }

    select = gui.MessageBoxRead(box)                   # 读取选择结果保存到变量select中

    if select == 0                                     # select = 0说明点击的是“确定”按钮

    {

        fp1 = FILEOPEN("test1.txt","w")               # 覆盖掉原文件

        fp1.write(string)                                  

        fp1.close()                                        

    }

    fp.close()       # 关闭已经打开的文件

}

else                 # 如果打不开copy00.txt文件,说明文件不存在,下面写入文件

{

    fp1 = FILEOPEN("test1.txt","w")                       # 写入新文件

    fp1.write(string)                                  

    fp1.close() 

}



# 例程6  用读、写方式打开文件,将字符串str写入文件

# fp.write(str)参数是字符串,返回:无返回

gui = GUI()                          # 定义GUI对象,用于图形界面显示

#gui.HideConsoleWindow()             # 隐藏控制台窗口

string = "abcdefg中文\n床前明月光,疑是地上霜;举头望明月,低头思故乡。"

fp = FILEOPEN("test.txt","r")      # 打开文件(文本、读写方式)

if fp != False                       # 如果文件能正确打开,说明文件已经存在 

{

    box = gui.MessageBox("文件test.txt已经存在,是否要覆盖原文件?","确定|取消")

    while gui.MessageBoxClosed(box) != -1 {PowerDown(3)}

    select = gui.MessageBoxRead(box)                         # 将选择结果保存到变量select中

    if select == 0                                           # select = 0说明点击的是“确定”按钮

    {

        fp1 = FILEOPEN("test.txt","w+")                     # 覆盖掉原文件

        fp1.write(string)                                  

        str = fp1.read()                                  

        fp1.close() 

        print("%\n",str)                                     

    }


    fp.close()       # 关闭已经打开的文件

}

else                 # 如果打不开copy00.txt文件,说明文件不存在,下面写入文件

{

    fp1 = FILEOPEN("test.txt","w+")                      # 写入新文件

    fp1.write(string)  

    str = fp1.read()                                

    fp1.close() 

    print("%\n",str)

}



# 例程7: 写入字符串,如果有文件,指向文件底部,如果没有,创建新文件,然后再读出显示


gui = GUI()                         # 定义GUI对象,用于图形界面显示

#gui.HideConsoleWindow()            # 隐藏控制台窗口

string = "abcdefg中文\n床前明月光,疑是地上霜;举头望明月,低头思故乡。\n"

fp = FILEOPEN("test.txt","r")     # 打开文件(文本、读写方式)

if fp != False                      # 如果文件能正确打开,说明文件已经存在 

{

    box = gui.MessageBox("文件test.txt已经存在,是否要覆盖原文件?","确定|取消")

    while gui.MessageBoxClosed(box) != -1 {PowerDown(3)}

    select = gui.MessageBoxRead(box)                   # 将选择结果保存到变量select中

    if select == 0                                         # select = 0说明点击的是“确定”按钮

    {

        fp1 = FILEOPEN("test.txt","a+")                  # 覆盖掉原文件

        fp1.write(string)                                  

        str = fp1.read()                                  

        fp1.close() 

        print("%\n",str)                                     

    }


    fp.close()       # 关闭已经打开的文件

}

else                 # 如果打不开copy00.txt文件,说明文件不存在,下面写入文件

{

    fp1 = FILEOPEN("test.txt","a+")                      # 写入新文件

    fp1.write(string)  

    str = fp1.read()                                

    fp1.close() 

    print("%\n",str)

}



0