Latest web development tutorials

งูหลามไฟล์ I / O

บทนี้จะอธิบายทั้งหมดที่ฉันพื้นฐาน / O ฟังก์ชั่นฟังก์ชั่นเพิ่มเติมโปรดดูที่เอกสารมาตรฐานหลาม

พิมพ์ไปที่หน้าจอ

วิธีที่ง่ายที่สุดคือการใช้การส่งออกคำสั่งพิมพ์คุณสามารถผ่านมันเป็นศูนย์หรือมากกว่าการแสดงออกคั่นด้วยเครื่องหมายจุลภาค ฟังก์ชั่นนี้จะแปลงการแสดงออกผ่านการแสดงออกสตริงและผลจะเขียนออกมาตรฐานดังต่อไปนี้:

#!/usr/bin/python
# -*- coding: UTF-8 -*- 

print "Python 是一个非常棒的语言,不是吗?";

จะให้ผลลัพธ์ที่ต่อไปนี้บนหน้าจอของคุณมาตรฐาน:

Python 是一个非常棒的语言,不是吗?

อ่านใส่แป้นพิมพ์

งูหลามมีสองฟังก์ชั่นในการอ่านบรรทัดของการป้อนข้อความจากมาตรฐานเข้ามาตรฐานเริ่มต้นคือแป้นพิมพ์ ดังต่อไปนี้:

  • raw_input
  • อินพุต

ฟังก์ชั่น raw_input

raw_input ([พรอมต์]) ฟังก์ชั่นในการอ่านบรรทัดจากอินพุตมาตรฐาน A และส่งกลับสตริง (ต่อท้ายบรรทัดใหม่ออก):

#!/usr/bin/python
# -*- coding: UTF-8 -*- 
 
str = raw_input("请输入:");
print "你输入的内容是: ", str

นี้จะแจ้งให้คุณป้อนสตริงใด ๆ แล้วแสดงสายเดียวกันบนหน้าจอ "Hello! งูใหญ่" เมื่อฉันพิมพ์, เอาท์พุทจะเป็นดังนี้:

请输入:Hello Python!
你输入的内容是:  Hello Python!

ฟังก์ชั่นการป้อนข้อมูล

การป้อนข้อมูล ([พรอมต์]) ฟังก์ชั่นและ raw_input ([พรอมต์]) ฟังก์ชั่นที่คล้ายกันอย่างมีนัยสำคัญ แต่การป้อนข้อมูลจะได้รับการแสดงออกหลามเป็น input และผลตอบแทนของการดำเนินการ

#!/usr/bin/python
# -*- coding: UTF-8 -*- 
 
str = input("请输入:");
print "你输入的内容是: ", str

นี้ก่อให้เกิดผลลัพธ์ต่อไปนี้สอดคล้องกับการป้อนข้อมูล:

请输入:[x*5 for x in range(2,10,2)]
你输入的内容是:  [10, 20, 30, 40]

การเปิดและปิดไฟล์

ตอนนี้คุณสามารถอ่านและเขียนเพื่อเข้ามาตรฐานและการส่งออก ตอนนี้ให้ดูที่วิธีการอ่านและเขียนไฟล์ข้อมูลที่เกิดขึ้นจริง

งูใหญ่ยังมีฟังก์ชั่นที่จำเป็นและวิธีการสำหรับการเริ่มต้นของแฟ้มของการดำเนินงานขั้นพื้นฐานคุณสามารถใช้ไฟล์วัตถุที่ทำแฟ้มการดำเนินงานมากที่สุด

เปิดฟังก์ชั่น

คุณต้องใช้งูหลามของในตัวเปิด () เพื่อเปิดไฟล์สร้างวัตถุไฟล์และวิธีการที่เกี่ยวข้องสามารถเรียกใช้มันในการอ่านและเขียน

ไวยากรณ์:

file object = open(file_name [, access_mode][, buffering])

รายละเอียดของพารามิเตอร์ต่างๆมีดังนี้

  • file_name: ตัวแปร file_name เป็นสตริงที่มีค่าที่คุณต้องการในการเข้าถึงชื่อไฟล์
  • access_mode: access_mode ตัดสินใจที่จะเปิดโหมดไฟล์: อ่านเขียนต่อท้าย ดูรายการที่สมบูรณ์ของค่าเป็นไปได้ทั้งหมดดังต่อไปนี้ พารามิเตอร์นี้ไม่ได้รับคำสั่ง, โหมดการเข้าถึงแฟ้มเริ่มต้นอ่านอย่างเดียว (R)
  • บัฟเฟอร์: ถ้าค่าของบัฟเฟอร์ตั้งค่าเป็น 0 จะมีการจัดเก็บไม่มี ถ้าค่าของบัฟเฟอร์ใช้เวลา 1 ก็จะลงทะเบียนบรรทัดเมื่อการเข้าถึงไฟล์ ถ้าตั้งค่าเป็นบัฟเฟอร์จำนวนเต็มมากกว่า 1 แสดงให้เห็นขนาดของบัฟเฟอร์นี้เป็นพื้นที่จัดเก็บ ถ้าเป็นค่าลบขนาดของเขตพื้นที่การจัดเก็บบัฟเฟอร์สำหรับการเริ่มต้นระบบ

เปิดรายการสินค้าทั้งหมดในโหมดที่แตกต่างของไฟล์:

โหมด ลักษณะ
R เปิดแฟ้มในโหมดอ่านอย่างเดียว ไฟล์ตัวชี้จะถูกวางไว้ที่จุดเริ่มต้นของไฟล์ นี้เป็นโหมดเริ่มต้น
RB เปิดไฟล์เพียงการอ่านในรูปแบบไบนารี จะยื่นชี้ที่จุดเริ่มต้นของไฟล์ นี้เป็นโหมดเริ่มต้น
R + เปิดไฟล์สำหรับการอ่านและการเขียน จะยื่นชี้ที่จุดเริ่มต้นของไฟล์
RB + เปิดไฟล์สำหรับการอ่านและการเขียนในรูปแบบไบนารี จะยื่นชี้ที่จุดเริ่มต้นของไฟล์
W เปิดไฟล์สำหรับการเขียนเท่านั้น ถ้าไฟล์ที่มีอยู่แล้วมันจะถูกเขียนทับ ถ้าไฟล์ไม่อยู่สร้างไฟล์ใหม่
WB เปิดไฟล์สำหรับการเขียนในรูปแบบไบนารีเท่านั้น ถ้าไฟล์ที่มีอยู่แล้วมันจะถูกเขียนทับ ถ้าไฟล์ไม่อยู่สร้างไฟล์ใหม่
W + เปิดไฟล์สำหรับการอ่านและการเขียน ถ้าไฟล์ที่มีอยู่แล้วมันจะถูกเขียนทับ ถ้าไฟล์ไม่อยู่สร้างไฟล์ใหม่
WB + เปิดไฟล์สำหรับการอ่านและการเขียนในรูปแบบไบนารี ถ้าไฟล์ที่มีอยู่แล้วมันจะถูกเขียนทับ ถ้าไฟล์ไม่อยู่สร้างไฟล์ใหม่
เปิดไฟล์สำหรับการผนวก ถ้าไฟล์ที่มีอยู่แล้วชี้แฟ้มจะถูกวางไว้ในตอนท้ายของแฟ้ม ในคำอื่น ๆ หลังจากที่เนื้อหาใหม่จะถูกเขียนไปยังเนื้อหาที่มีอยู่ ถ้าไฟล์ไม่อยู่สร้างไฟล์ใหม่สำหรับการเขียน
AB เปิดแฟ้มสำหรับการผนวกในรูปแบบไบนารี ถ้าไฟล์ที่มีอยู่แล้วชี้แฟ้มจะถูกวางไว้ในตอนท้ายของแฟ้ม ในคำอื่น ๆ หลังจากที่เนื้อหาใหม่จะถูกเขียนไปยังเนื้อหาที่มีอยู่ ถ้าไฟล์ไม่อยู่สร้างไฟล์ใหม่สำหรับการเขียน
A + เปิดไฟล์สำหรับการอ่านและการเขียน ถ้าไฟล์ที่มีอยู่แล้วชี้แฟ้มจะถูกวางไว้ในตอนท้ายของแฟ้ม มันจะผนวกโหมดแฟ้มถูกเปิด ถ้าไฟล์ไม่อยู่สร้างไฟล์ใหม่สำหรับการอ่านและการเขียน
AB + เปิดแฟ้มสำหรับการผนวกในรูปแบบไบนารี ถ้าไฟล์ที่มีอยู่แล้วชี้แฟ้มจะถูกวางไว้ในตอนท้ายของแฟ้ม ถ้าไฟล์ไม่อยู่สร้างไฟล์ใหม่สำหรับการอ่านและการเขียน

แอตทริบิวต์แฟ้มวัตถุ

หลังจากที่มีเปิดแฟ้มคุณมีวัตถุไฟล์ที่คุณจะได้รับทุกชนิดของข้อมูลเกี่ยวกับไฟล์

ต่อไปนี้เป็นรายการของแฟ้มคุณลักษณะทั้งหมดและวัตถุที่เกี่ยวข้องกับ:

คุณสมบัติ ลักษณะ
file.closed ผลตอบแทนจริงถ้าภาพนี้ถูกปิดมิฉะนั้นก็จะส่งกลับเท็จ
file.mode กลับสู่โหมดการเข้าถึงไฟล์ที่เปิด
file.name ส่งกลับชื่อของไฟล์
file.softspace หากใช้การพิมพ์ออกจะต้องตามด้วยอักขระช่องว่างก็จะส่งกลับเท็จ มิฉะนั้นก็จะส่งกลับจริง

ตัวอย่างต่อไปนี้:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 打开一个文件
fo = open("foo.txt", "wb")
print "文件名: ", fo.name
print "是否已关闭 : ", fo.closed
print "访问模式 : ", fo.mode
print "末尾是否强制加空格 : ", fo.softspace

ตัวอย่างของการส่งออกดังกล่าวข้างต้น:

文件名:  foo.txt
是否已关闭 :  False
访问模式 :  wb
末尾是否强制加空格 :  0

ใกล้ () วิธีการ

ใกล้วัตถุไฟล์ () วิธีการรีเฟรชข้อมูลใด ๆ ได้เขียนบัฟเฟอร์และปิดแฟ้มหลังจากที่พวกเขาไม่สามารถเขียน

เมื่ออ้างอิงวัตถุไฟล์ที่จะ re-รับมอบหมายให้เป็นไฟล์อื่นหลามจะปิดแฟ้มก่อนหน้านี้ ด้วยความใกล้ชิด () วิธีการปิดแฟ้มเป็นนิสัยที่ดี

ไวยากรณ์:

fileObject.close();

ตัวอย่าง:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 打开一个文件
fo = open("foo.txt", "wb")
print "文件名: ", fo.name
 
# 关闭打开的文件
fo.close()

ตัวอย่างของการส่งออกดังกล่าวข้างต้น:

文件名:  foo.txt

อ่านและเขียนไฟล์:

วัตถุไฟล์ให้จำนวนของวิธีการที่ช่วยให้เราสามารถเข้าถึงไฟล์ได้ง่ายขึ้น ดูวิธีการใช้อ่าน () และเขียน () วิธีการอ่านและเขียนไฟล์

เขียน () วิธีการ

เขียน () วิธีการเขียนเปิดแฟ้มสตริง มันเป็นสิ่งสำคัญที่จะทราบว่าสตริงหลามสามารถเป็นข้อมูลไบนารีมากกว่าเพียงข้อความ

เขียน () วิธีการไม่เพิ่มขึ้นบรรทัดใหม่ในตอนท้ายของสตริง ( '\ n') นี้:

ไวยากรณ์:

fileObject.write(string);

นี่พารามิเตอร์ที่จะถูกส่งผ่านคือการเขียนเพื่อเปิดเนื้อหาของไฟล์

ตัวอย่าง:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 打开一个文件
fo = open("foo.txt", "wb")
fo.write( "www.w3big.com!\nVery good site!\n");
 
# 关闭打开的文件
fo.close()

วิธีการข้างต้นอธิบายสร้างแฟ้ม foo.txt และเขียนเนื้อหาของเอกสารที่ได้รับและในที่สุดก็ปิดแฟ้ม ถ้าคุณเปิดแฟ้มนี้คุณจะได้เห็นต่อไปนี้:

$ cat foo.txt 
www.w3big.com!
Very good site!

อ่านวิธี ()

อ่าน () วิธีการอ่านสตริงจากไฟล์ที่เปิด มันเป็นสิ่งสำคัญที่จะทราบว่าสตริงหลามสามารถเป็นข้อมูลไบนารีมากกว่าเพียงข้อความ

ไวยากรณ์:

fileObject.read([count]);

นี่อาร์กิวเมนต์จะถูกส่งผ่านจากแฟ้มที่เปิดนับไบต์อ่าน วิธีการเริ่มต้นจากจุดเริ่มต้นของไฟล์ที่จะอ่านหากไม่นับที่เข้ามาก็จะพยายามที่จะอ่านเป็นเนื้อหาที่มากขึ้นอาจจะจนกว่าจะสิ้นสุดของแฟ้ม

ตัวอย่าง:

ที่นี่เราใช้ไฟล์ foo.txt ที่สร้างขึ้นดังกล่าวข้างต้น

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 打开一个文件
fo = open("foo.txt", "r+")
str = fo.read(10);
print "读取的字符串是 : ", str
# 关闭打开的文件
fo.close()

ตัวอย่างของการส่งออกดังกล่าวข้างต้น:

读取的字符串是 :  www.w3big

สถานที่ตั้งของไฟล์:


ตำแหน่งที่ตั้งของแฟ้ม

บอก () วิธีบอกคุณที่ตั้งปัจจุบันภายในไฟล์นั้นในคำอื่น ๆ ต่อไปอ่านหรือเขียนจะเกิดขึ้นหลังจากที่เริ่มต้นของแฟ้มไบต์จำนวนมากดังนั้น

แสวงหา (offset [จาก]) วิธีการเปลี่ยนตำแหน่งของไฟล์ปัจจุบัน ตัวแปร Offset ระบุจำนวนไบต์ที่ถูกย้าย จากจุดเริ่มต้นที่จะย้ายตัวแปรไบต์ระบุตำแหน่งอ้างอิง

ถ้าจากตั้งค่าเป็น 0 ซึ่งหมายถึงจุดเริ่มต้นของแฟ้มเป็นตำแหน่งอ้างอิงที่จะย้ายไบต์ ถ้าตั้งค่าเป็น 1 ตำแหน่งปัจจุบันเป็นตำแหน่งอ้างอิง ถ้ามันถูกตั้งไว้ที่ 2 จากนั้นในตอนท้ายของไฟล์ที่จะใช้เป็นตำแหน่งอ้างอิง

ตัวอย่าง:

ในไฟล์ของเราสร้างขึ้น foo.txt

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 打开一个文件
fo = open("foo.txt", "r+")
str = fo.read(10);
print "读取的字符串是 : ", str
 
# 查找当前位置
position = fo.tell();
print "当前文件位置 : ", position
 
# 把指针再次重新定位到文件开头
position = fo.seek(0, 0);
str = fo.read(10);
print "重新读取字符串 : ", str
# 关闭打开的文件
fo.close()

ตัวอย่างของการส่งออกดังกล่าวข้างต้น:

读取的字符串是 :  www.w3big
当前文件位置 :  10
重新读取字符串 :  www.w3big

เปลี่ยนชื่อและลบไฟล์

ธ โมดูล OS ให้เพื่อช่วยให้คุณดำเนินการไฟล์วิธีการดำเนินการประมวลผลเช่นการเปลี่ยนชื่อและลบไฟล์

ที่จะใช้โมดูลนี้คุณจะต้องนำเข้าก่อนที่คุณจะสามารถเรียกฟังก์ชั่นต่างๆที่เกี่ยวข้อง

เปลี่ยนชื่อ () วิธีการ:

เปลี่ยนชื่อ () วิธีการต้องใช้สองพารามิเตอร์ชื่อไฟล์ปัจจุบันและชื่อไฟล์ใหม่

ไวยากรณ์:

os.rename(current_file_name, new_file_name)

ตัวอย่าง:

ตัวอย่างต่อไปนี้จะเปลี่ยนชื่อไฟล์ที่มีอยู่แล้ว Test1.txt

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os
 
# 重命名文件test1.txt到test2.txt。
os.rename( "test1.txt", "test2.txt" )

ลบ () วิธีการ

คุณสามารถใช้ลบ () วิธีการลบไฟล์ที่คุณจำเป็นต้องให้ชื่อของไฟล์ที่จะลบเป็นพารามิเตอร์

ไวยากรณ์:

os.remove(file_name)

ตัวอย่าง:

ตัวอย่างต่อไปนี้จะลบไฟล์ที่มีอยู่แล้ว test2.txt

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os
 
# 删除一个已经存在的文件test2.txt
os.remove("test2.txt")

งูหลามในไดเรกทอรี:

ไฟล์ทั้งหมดที่มีอยู่ในไดเรกทอรีต่างๆ แต่งูใหญ่สามารถจัดการได้อย่างง่ายดาย OS โมดูลมีหลายวิธีที่จะช่วยให้คุณสามารถสร้างลบและเปลี่ยนไดเรกทอรี

mkdir () วิธีการ

คุณสามารถใช้ mkdir OS โมดูล () วิธีการสร้างไดเรกทอรีใหม่อยู่ในไดเรกทอรีปัจจุบัน คุณจำเป็นต้องให้พารามิเตอร์ที่มีชื่อของไดเรกทอรีที่จะสร้าง

ไวยากรณ์:

os.mkdir("newdir")

ตัวอย่าง:

ตัวอย่างต่อไปนี้จะสร้างการทดสอบไดเรกทอรีใหม่ในไดเรกทอรีปัจจุบัน

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os
 
# 创建目录test
os.mkdir("test")

chdir () วิธีการ

คุณสามารถใช้ chdir () วิธีการเปลี่ยนไดเรกทอรีปัจจุบัน พารามิเตอร์ chdir () วิธีการกำหนดว่าคุณต้องการที่จะตั้งเป็นชื่อไดเรกทอรีของไดเรกทอรีปัจจุบัน

ไวยากรณ์:

os.chdir("newdir")

ตัวอย่าง:

ตัวอย่างต่อไปนี้จะเข้าสู่ "/ home / newdir directory"

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os
 
# 将当前目录改为"/home/newdir"
os.chdir("/home/newdir")

getcwd () วิธีการ:

getcwd () วิธีการแสดงไดเรกทอรีการทำงานปัจจุบัน

ไวยากรณ์:

os.getcwd()

ตัวอย่าง:

ตัวอย่างต่อไปนี้แสดงให้เห็นถึงไดเรกทอรีปัจจุบัน:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os
 
# 给出当前的目录
os.getcwd()

rmdir () วิธีการ

rmdir () วิธีการลบไดเรกทอรีชื่อไดเรกทอรีผ่านเป็นพารามิเตอร์

ก่อนที่จะลบไดเรกทอรีนี้และทุกเนื้อหาควรล้างครั้งแรก

ไวยากรณ์:

os.rmdir('dirname')

ตัวอย่าง:

ต่อไปนี้เป็นลบ "/ tmp / test" ตัวอย่างที่ไดเรกทอรี ครบชื่อไดเรกทอรีตามมาตรฐานจะต้องได้รับมิฉะนั้นมันจะค้นหาไดเรกทอรีในไดเรกทอรีปัจจุบัน

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os
 
# 删除”/tmp/test”目录
os.rmdir( "/tmp/test"  )

ไฟล์ไดเรกทอรีวิธีการที่เกี่ยวข้อง

สามวิธีสามารถเป็นแหล่งสำคัญของไฟล์และไดเรกทอรีบน Windows และ Unix ระบบปฏิบัติการดำเนินการที่หลากหลายของการจัดการการปฏิบัติและการจัดการดังนี้

  • แฟ้มวิธีวัตถุ : วัตถุไฟล์ให้ชุดของวิธีการจัดการไฟล์
  • OS วัตถุ : ให้วิธีการสำหรับการประมวลผลชุดของไฟล์และไดเรกทอรี