日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python文件输入符_python文件IO与file操作

發(fā)布時(shí)間:2023/12/10 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python文件输入符_python文件IO与file操作 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1 標(biāo)準(zhǔn)輸入輸出IO

- (1) 打印到屏幕 print()

print(self, *args, sep=’ ‘, end=’n’, file=None):

把傳遞的表達(dá)式 轉(zhuǎn)換成一個(gè) 字符串表達(dá)式

known special case of print

"""

print(value, ..., sep=' ', end='n', file=sys.stdout, flush=False)

Prints the values to a stream, or to sys.stdout by default.

Optional keyword arguments:

file: a file-like object (stream); defaults to the current sys.stdout.

sep: string inserted between values, default a space.

end: string appended after the last value, default a newline.

flush: whether to forcibly flush the stream.

- (2) 讀取鍵盤的輸入 print()

input(*args, **kwargs):

從標(biāo)準(zhǔn)輸入讀取一個(gè)行,并返回一個(gè)字符串

Read a string from standard input

注意 python2 中

raw_input 與python3的input一樣

input可以接收一個(gè)Python表達(dá)式作為輸入,并將運(yùn)算結(jié)果返回

str = input("請(qǐng)輸入表達(dá)式:");

[i for i in range(4)]

print "你輸入的內(nèi)容是: ", str

[0,1,2,3]

2 數(shù)據(jù)文件的讀寫,打開和關(guān)閉文件

- (1) 創(chuàng)建file文件對(duì)象—open()方法

用Python內(nèi)置的open()函數(shù)打開一個(gè)文件,創(chuàng)建一個(gè)file對(duì)象,然后使用相關(guān)的方法才可以調(diào)用它進(jìn)行讀寫

f=open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)

f--文件句柄對(duì)象

file:訪問的文件名稱。

mode:決定了打開文件的模式:只讀,寫入,追加等。默認(rèn)文件訪問模式為只讀(r)。

encoding:指定編碼格式,gbk,utf8..。

buffering:如果buffering的值被設(shè)為0,就不會(huì)有寄存。如果buffering的值取1,訪問文件時(shí)會(huì)寄存行。如果將buffering的值設(shè)為大于1的整數(shù),表明了這就是的寄存區(qū)的緩沖大小。如果取負(fù)值,寄存區(qū)的緩沖大小則為系統(tǒng)默認(rèn)。

打開文件的不同方式:

模式描述

r以只讀方式打開文件。文件的指針將會(huì)放在文件的開頭。這是默認(rèn)模式。

rb以二進(jìn)制格式打開一個(gè)文件用于只讀。文件指針將會(huì)放在文件的開頭。這是默認(rèn)模式。

r+打開一個(gè)文件用于讀寫。文件指針將會(huì)放在文件的開頭。

rb+以二進(jìn)制格式打開一個(gè)文件用于讀寫。文件指針將會(huì)放在文件的開頭。

w打開一個(gè)文件只用于寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。

wb以二進(jìn)制格式打開一個(gè)文件只用于寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。

w+打開一個(gè)文件用于讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。

wb+以二進(jìn)制格式打開一個(gè)文件用于讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。

a打開一個(gè)文件用于追加。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。也就是說,新的內(nèi)容將會(huì)被寫入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件進(jìn)行寫入。

ab以二進(jìn)制格式打開一個(gè)文件用于追加。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。也就是說,新的內(nèi)容將會(huì)被寫入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件進(jìn)行寫入。

a+打開一個(gè)文件用于讀寫。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。文件打開時(shí)會(huì)是追加模式。如果該文件不存在,創(chuàng)建新文件用于讀寫。

ab+以二進(jìn)制格式打開一個(gè)文件用于追加。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。如果該文件不存在,創(chuàng)建新文件用于讀寫。

文件操作圖解:

模式

r

r+

w

w+

a

a+

+

+

+

+

+

+

+

+

+

創(chuàng)建

+

+

+

+

覆蓋

+

+

指針在開始

+

+

+

+

指針在結(jié)尾

+

+

- (2) file文件對(duì)象的屬性和方法

一個(gè)被打開的file文件,可以通過操作得到有關(guān)該文件的各種信息

屬性描述

file.closed返回true如果文件已被關(guān)閉,否則返回false。

file.mode返回被打開文件的訪問模式。

file.name返回文件的名稱。

f=open(r"filename","rb")

print(f.name) filename

print(f.closed) False

print(f.mode) rb

f.close()

print(f.name) filename

print(f.closed) True

print(f.mode) rb

close()方法

File 對(duì)象的 close()方法刷新緩沖區(qū)里任何還沒寫入的信息,并關(guān)閉該文件,這之后便不能再進(jìn)行寫入

read()方法

按打開方式是 字節(jié)還是字符

read(self, size=-1)

按格式讀長(zhǎng)度

file.read(2)

r--->2 字符

rb--->2 字節(jié)

seek()方法

后面是字節(jié),指定指針位置

seek(self, *args, **kwargs)

file.seek(2)----字節(jié)數(shù)----gbk--2個(gè)字節(jié)一個(gè)漢字

file.seek(3)----字節(jié)數(shù)----utf-8--3個(gè)字節(jié)一個(gè)漢字

file.tell()

查看當(dāng)前指針位置

seek(self, *args, **kwargs)

position = fo.tell();

print("當(dāng)前文件位置 : ", position)

file.writable()

True if file was opened in a write mode.

file.readable()

True if file was opened in a read mode.

file.flush()

從內(nèi)存強(qiáng)刷到硬盤

一般文件操作沒有完成到硬盤上的時(shí)候,數(shù)據(jù)不會(huì)存在

file.readline()

讀一行

readline() --------- 每行

for line in file:

print(line.read()) ========>>>>> # python 2 xreadlines()

file.readlines()

返回一個(gè)列表

file.truncate()

截取 指針位置前面的數(shù)據(jù)

- (3) 上下文管理 with open(..) as f:

with open(r'filename',mode='rb') as file:

file.read()

例子

讀寫操作 字節(jié),字符打開

1

path=r'filename'

file=open(path,encoding='utf-8',mode='r')

a=file.read()

print(a)

file.close()

2

path=r'filename'

file=open(path,'rb')

a=file.read().decode('gbk')

print(a)

file.close()

3

path=r'filename'

file=open(path,mode='w',encoding='utf-8')

file.write('adasdad')

file.close()

4

path=r'filename'

file=open(path,'wb')

file.write('哈哈哈'.encode('utf-8'))

file.close()

- (4) 文件的修改與重命名

文件修改,重命名需要借助 os模塊的 remove()和rename()

原文件,讀取內(nèi)容 — 修改 — 重新新建一個(gè)文件,接收 — 刪除原文件

os模塊提供執(zhí)行文件處理操作的方法,比如重命名和刪除文件

rename(current_file_name, new_file_name)

remove(file_name)

例子

file2=open(r'f2','w',encoding='utf-8')

with open(r'f1','r',encoding='utf-8') as file1:

for line in file1:

mylist=line.split('|')

mylist[0]=mylist[0][0:2]

mystr='|'.join(mylist)

file2.write(mystr)

file2.close()

import os

os.remove(r'f1')

os.rename(r'f1',r'f2')

3 目錄操作方法 os模塊

mkdir()方法

當(dāng)前目錄下創(chuàng)建一個(gè)新目錄

import os

# 創(chuàng)建目錄test

os.mkdir("test")

chdir()方法

切換目錄

import os

os.mkdir("d:test")

getcwd()方法

顯示當(dāng)前的工作目錄

import os

print(os.getcwd())

rmdir()方法

刪除目錄,刪除之前,它的所有內(nèi)容應(yīng)該先被清除

import os

os.rmdir("d:text")

4 常見的文件目錄操作方法 附錄:

OS 對(duì)象方法:

提供了處理文件及目錄的一系列方法

序號(hào)方法及描述

8

9

10

11

12

13

14

16

17

18

19

20

22

23

24

26

27

28

29

30

31

32

33

34

35

36

37os.mknod(filename[, mode=0600, device])

創(chuàng)建一個(gè)名為filename文件系統(tǒng)節(jié)點(diǎn)(文件,設(shè)備特別文件或者命名pipe)。

38

39

41

43

45

47

48

49

50

52

54

55

57

58

59

61

63

file句柄 對(duì)象方法:

序號(hào)方法及描述

1關(guān)閉文件。關(guān)閉后文件不能再進(jìn)行讀寫操作。

2刷新文件內(nèi)部緩沖,直接把內(nèi)部緩沖區(qū)的數(shù)據(jù)立刻寫入文件, 而不是被動(dòng)的等待輸出緩沖區(qū)寫入。

3返回一個(gè)整型的文件描述符(file descriptor FD 整型), 可以用在如os模塊的read方法等一些底層操作上。

4如果文件連接到一個(gè)終端設(shè)備返回 True,否則返回 False。

6從文件讀取指定的字節(jié)數(shù),如果未給定或?yàn)樨?fù)則讀取所有。

8讀取所有行并返回列表,若給定sizeint>0,則是設(shè)置一次讀多少字節(jié),這是為了減輕讀取壓力。

10

11截取文件,截取的字節(jié)通過size指定,默認(rèn)為當(dāng)前文件位置。

12將字符串寫入文件,沒有返回值。

13向文件寫入一個(gè)序列字符串列表,如果需要換行則要自己加入每行的換行符。

總結(jié)

以上是生活随笔為你收集整理的python文件输入符_python文件IO与file操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。