Python计算器小程序及文件IO

#Pyhon语言总体比较简单,和PHP有点像,变量无须声明,无须大括号和分号
#但是要注意输入输出和冒号的书写
#好的Python网站 http://www.sthurlow.com/python/ 和 http://www.yiibai.com/python
#Python tutorial及API文档大全 http://www.python.org/doc/
   
def menu():
     print "Welcome to yangliu cal.py"
     print "you options are:"
     print " "
     print "1) Addition"
     print "2) Sub"
     print "3) Multiplication"
     print "4) Div"
     print "5) Quit"
     return input ("Choose your option: ")

def add(a,b):
     print a, "+", b, "=", a + b
def sub(a,b):
     print a, "-", b, "=", a - b
def mul(a,b):
     print a, "*", b, "=", a * b
def div(a,b):
     print a, "/", b, "=", a / b

choice = 0
loop = 1
while loop == 1:
     choice = menu()
     if choice == 1:
          add(input("Add this:"), input("to this: "))
     elif choice == 2:
          sub(input("Sub this:"), input("to this: "))
     elif choice == 3:
          mul(input("Mul this:"), input("to this: "))
     elif choice == 4:
          div(input("Div this:"), input("to this: "))
     elif choice == 5:
          loop = 0
         
print "Thank you!"


Python文件IO,主要函数如read(),write(),seek()等等和C很像,有一些很强大的函数,转录部分资料放在这里 来源 http://www.yiibai.com/python/python_files_io.html

打印到屏幕上

产生输出最简单的方法是使用print语句,在那里你可以通过零个或多个表达式,用逗号隔开。此功能转换你把它传递给一个字符串表达式,结果写到标准输出如下:
#!/usr/bin/python

print "Python is really a great language,", "isn't it?"; 
此标准屏幕上会产生以下结果:
Python is really a great language, isn't it? 

读取键盘输入

Python提供了两个内置的函数从标准输入,默认情况下,从键盘读取一行文本。这些职能是:

    * raw_input
    * input

raw_input() 函数

raw_input([prompt]) 函数从标准输入读取一个行,它返回一个字符串(去掉结尾的换行符):
#!/usr/bin/python

str = raw_input("Enter your input: ");
print "Received input is : ", str 
这将提示您输入任何字符串,它会在屏幕上显示相同的字符串。当我输入“!Python的”,它的输出是这样的:
Enter your input: Hello Python
Received input is :  Hello Python 

打开和关闭文件

到现在为止,您已经阅读和写作的标准输入和输出。现在,我们将看到如何发挥与实际的数据文件。
Python提供了必要的操作文件默认情况下的基本功能和方法。你可以做你的文件使用文件对象的操作。

open() 函数:

才可以读取或写入文件,你必须使用Python的内置在open()函数打开它。这个函数创建一个文件对象,这将被用来调用与它相关的其他支持方法。
语法:
file object = open(file_name [, access_mode][, buffering]) 
下面是参数研究的细节:

    *  file_name:FILE_NAME参数是一个字符串值,它包含您要访问的文件名。
    *  access_mode:该access_mode确定在该文件已被打开,即模式。读,写追加等,在下表中给出的可能值的完整列表。这是可选参数,默认的文件访问模式读取(r)
    *  buffering:如果缓冲值设置为0,没有缓冲就会发生。如果缓冲值是1,线缓冲访问文件时,将执行。如果您指定一个大于1的整数的缓冲值,然后缓冲作用,将指定的缓冲区大小。如果是负数,缓冲区的大小是系统默认(默认行为)。

这里是一个不同的模式打开一个文件列表:
 
模块 描述
r 以只读方式打开文件。文件指针放置在文件的开头。这是默认模式。
rb 打开一个只读取二进制格式的文件。文件指针放置在文件的开头。这是默认模式。
r+ 打开一个文件的读和写。文件指针将会在文件的开头。
rb+ 打开一个文件,二进制格式的读和写。文件指针将会在文件的开头。
w 打开只写文件。如果该文件存在,覆盖该文件。如果该文件不存在,创建新的书面文件。
wb 打开仅在二进制格式的书面文件。如果该文件存在,覆盖该文件。如果该文件不存在,创建新的书面文件。
w+ 打开一个写作和阅读文件。如果该文件存在,将覆盖现有的文件。如果该文件不存在,创建一个新的文件读和写。
wb+ 打开一个二进制格式的写作和阅读文件。如果该文件存在,将覆盖现有的文件。如果该文件不存在,创建一个新的文件读和写。
a 打开一个文件追加。文件指针是在结束的文件,如果该文件存在。也就是说,该文件是在追加模式。如果该文件不存在,它创建了一个新的书面文件。
ab 打开附加的二进制格式的文件。文件指针是在结束的文件,如果该文件存在。也就是说,该文件是在追加模式。如果该文件不存在,它创建了一个新的书面文件。
a+ 打开一个追加和读文件。文件指针是在结束的文件,如果该文件存在。在追加模式打开该文件。如果该文件不存在,它会创建一个新的文件读和写。
ab+ 打开两个附加和读二进制格式的文件。文件指针是在结束的文件,如果该文件存在。在追加模式打开该文件。如果该文件不存在,它会创建一个新的文件读和写。

文件对象属性

一旦一个文件被打开,并有一个文件对象,你可以得到有关该文件的各种信息。
以下是有关文件对象的所有属性的列表:

Attribute Description
file.closed Returns true if file is closed, false otherwise.
file.mode Returns access mode with which file was opened.
file.name Returns name of the file.
file.softspace Returns false if space explicitly required with print, true otherwise.


例子:

#!/usr/bin/python

# Open a file
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name
print "Closed or not : ", fo.closed
print "Opening mode : ", fo.mode
print "Softspace flag : ", fo.softspace
这将输出以下结果:
Name of the file:  foo.txt
Closed or not :  False
Opening mode :  wb
Softspace flag :  0

close() 方法

close()方法的任何一个文件对象刷新不成文的信息,并关闭该文件的对象,没有更多的写作后,可以做。
Python的自动关闭一个文件时,文件的参考对象被重新分配到另一个文件。使用close()方法关闭一个文件,这是一个很好的实践。

语法:
fileObject.close(); 
例子:
#!/usr/bin/python

# Open a file
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name

# Close opend file
fo.close()
这将输出以下结果:
Name of the file:  foo.txt



读写文件

文件对象提供了一套访问方法,使我们的生活更轻松。我们会看到如何使用read()和write()方法来读取和写入文件。
write()方法:
write()方法写入字符串的任何一个打开的文件。重要的是要注意,Python字符串可以有二进制数据,而不是只是文字。
的write()方法不添加换行符('\ N')的字符串的结尾:

语法:
fileObject.write(string); 


这里传递的参数是要写入到opend文件的内容。

例如:
#!/usr/bin/python

# Open a file
fo = open("foo.txt", "wb")
fo.write( "Python is a great language.\nYeah its great!!\n");

# Close opend file
fo.close() 
上面的方法将创造foo.txt的文件,并会写在该文件中的内容,并最终将关闭该文件。如果你想打开这个文件,它有以下内容:
Python is a great language.
Yeah its great!! 

read() 方法

read()方法从一个打开的文件中读取字符串。重要的是要注意,Python字符串可以有二进制数据,而不是只是文字。

语法:
fileObject.read([count]);
这里的参数是要从opend文件读取的字节数。这种方法从文件的开头开始阅读和计数失踪然后,它尝试读取尽可能多的,可能是直到文件结束。

例如:

我们需要我们上面创建的文件foo.txt
#!/usr/bin/python

# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10);
print "Read String is : ", str
# Close opend file
fo.close() 
这将输出以下结果:
Read String is :  Python is


文件位置

tell()方法告诉你内的文件的当前位置,换句话说,未来的读写将出现在文件的开头,许多字节:
寻求(偏移[])方法改变当前文件的位置。 offset参数表示要移动的字节数。从参数指定字节是要移动的参考位置。

如果从被设置为0,这意味着作为参考位置使用该文件的开头和1意味着使用当前的位置作为参考位置,如果它被设置为2,那么该文件的末尾,将作为参考位置。

例如:

我们需要我们上面创建的文件foo.txt
#!/usr/bin/python

# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10);
print "Read String is : ", str

# Check current position
position = fo.tell();
print "Current file position : ", position

# Reposition pointer at the beginning once again
position = fo.seek(0, 0);
str = fo.read(10);
print "Again read String is : ", str
# Close opend file
fo.close() 
这将输出以下结果:
Read String is :  Python is
Current file position :  10
Again read String is :  Python is
 

重命名和删除文件

Python的os模块提供的方法,帮助您执行,如重命名和删除文件,文件处理操作。
要使用这个模块,你需要导入它,然后可以任何相关的所有功能。

rename() 方法

rename()方法有两个参数,当前的文件名和新文件名。

语法:
os.rename(current_file_name, new_file_name)
例如:

下面是重命名现有的文件test1.txt的例子:
#!/usr/bin/python
import os

# Rename a file from test1.txt to test2.txt
os.rename( "test1.txt", "test2.txt" )

delete() 方法

你可以使用delete()方法所提供的文件名作为参数删除,删除的文件。

语法:
os.delete(file_name) 
例如:

以下是删除现有的文件test2.txt的例子:
#!/usr/bin/python
import os

# Delete file test2.txt
os.delete("text2.txt") 
 

Python中的目录

所有文件都包含在不同的目录,和Python有没有处理这些问题。 os模块有几种方法可以帮助您创建,删除和更改目录。

mkdir() 方法

您可以使用mkdir()os模块的方法,在当前目录下创建目录。你需要提供一个参数,这个方法,其中包含要创建的目录的名称。

语法:
os.mkdir("newdir") 
例如:

以下是在当前目录创建一个目录测试的例子:
#!/usr/bin/python
import os

# Create a directory "test"
os.mkdir("test") 


chdir() 方法


您可以使用chdir()方法来改变当前目录。chdir()方法需要一个参数,这是你想在当前目录的目录名称。

语法:
os.chdir("newdir") 
例如:

以下是进入“/home/newdir”目录的例子:
#!/usr/bin/python
import os

# Changing a directory to "/home/newdir"
os.chdir("/home/newdir") 

getcwd() 方法

getcwd()方法显示当前工作目录。

语法:
os.getcwd() 
例如:

以下是给当前目录的例子:
#!/usr/bin/python
import os

# This would give location of the current directory
os.getcwd() 



rmdir() 方法

rmdir()方法删除目录,这是作为方法的参数传递。
在删除目录之前,在它的所有内容应该被删除。

语法:
os.rmdir('dirname') 


例如:

以下是删除“目录的/tmp/test”的例子。它需要给目录的完全合格的名称,否则会在当前目录中搜索该目录。
#!/usr/bin/python
import os

# This would  remove "/tmp/test"  directory.
os.rmdir( "/tmp/test"  ) 

你可能感兴趣的:(Python计算器小程序及文件IO)