導航:首頁 > 編程語言 > python標准輸入輸出

python標准輸入輸出

發布時間:2022-12-17 03:58:35

A. 在python中,怎麼實現輸入

Python的輸入輸出分別是利用函數:

str = input("請輸入:");
print ("你輸入的內容是: ", str);
input函數返回一個string類型的值,聲明一個變數來接收輸入的值,print是輸出

B. python調用sac--參考SAC手冊

#this python file is used to read SAC file

import os

import sys

import subprocess

import glob

from obspy.core import read

from PyQt5.QtWidgetsimport *

from PyQt5.QtGuiimport *

from PyQt5.QtCoreimport *

from PyQt5import QtCore, QtGui, QtWidgets

'''import os 是導入標准庫os,利用其中的API。

sys模塊包含了與Python解釋器和它的環境有關的函數。

glob是python自帶的一個文件操作模塊,用它查找符合目的的文件,類似於Windows下的文件搜索,支持通配符操作

subprocess允許創建一個新的進程讓其執行另外的程序,並與它進行通信,獲取標準的輸入、標准輸出、標准錯誤以及返回碼等

'''

def run(path):

# path = QtWidgets.QFileDialog.getExistingDirectory(None, "Select File Directory to Save File", "")

    fileName = os.listdir(path)

os.chdir(path)

os.putenv("SAC_DISPLAY_COPYRIGHT", '0')

for namein fileName:

# name = i

#for file in glob.glob("*.SAC"):

#glob.glob是匹配所有符合條件的文件,並將其以list的形式返回

#os.putenv("SAC_DISPLAY_COPYRIGHT", '0') #os.putenv(『環境變數名稱』, 『環境變數值』)

#p = subprocess.Popen(['sac'], stdin=subprocess.PIPE)#Popen表示調用sac

#stdin指向鍵盤輸入,standard input

#Python 3 利用 subprocess 實現管道( pipe )交互操作讀/寫通信

# s = "r " + name + " \n"  ###這里應該是傳入某個文件,所以應該有個讀取文件的按鈕

# s += "qdp off\n"

# s += "ch allt (0 - &1,o&) iztype IO \n"  #修改發震時刻為零

# s += "rmean; rtrend; taper \n"  #去均值,去線性趨勢,去尖滅

# s += "bp c 0.05 10 n 4 p 2 \n"  #帶通濾波

# s += "w over\n"

# s += "r *BHN *BHE \n"  #分量旋轉,讀入N、E分量,rot並修改頭段變數

# s += "rotate to gcp"

# s += "w .BHR .BHT"

# s += "r *.BHR\n"

# s += "ch KCMPNM BHR\n"

# s += "w over\n"

# s += "r *.BHT\n"

# s += "ch KCMPNM BHT\n"

# s += "w over\n"

# s += "p \n"

# s += "saveimg 2009.ps\n"

# s += "q\n"

        s ="r " + name +" \n"

        #s += "ppk p 3 a m\n"

        s +="w over\n"

        s +="q \n"

        # p.communicate(s.encode()) #通過p.communicate() 將命令s.encode() 傳遞給sac,實現sac的操作

        subprocess.Popen(['sac'], stdin=subprocess.PIPE).communicate(s.encode())

C. Python常用標准庫之sys

sys模塊主要是針對與Python解釋器相關的變數和方法,不是主機操作系統。
導入方式: import sys

sys.argv是一個腳本執行參數列表,列表的第一個元素是腳本名稱,從第二個元素開始才是真正的參數。

path是一個目錄列表,供Python從中查找模塊。在Python啟動時,sys.path根據內建規則和PYTHONPATH變數進行初始化。sys.path的第一個元素通常是個空字元串,表示當前目錄。

sys.path本質上是一個列表,可以進行append、insert、pop、remove等各種列表相關的操作,但通常都進行append操作,添加自己想要的查找路徑。

stdin 用於所有的互動式輸入(包括input()函數)。
stdout 用於print()的列印輸出或者input()函數的提示符。
stderr 用於解釋器自己的提示信息和錯誤信息。

簡而言之,這三個屬性就是操作系統的標准輸入、輸出和錯誤流,它們返回的都是一個「文件類型」對象,支持read()、write()和flush()等操作,就像用open()方法打開的文件對象那樣!

當我們用 input('Please input something!') 時,事實上是先輸出提示信息,然後捕獲輸入。 以下兩組等價:

當我們 print(obj) 的時候,事實上是調用了 sys.stdout.write(obj+' ') ,將內容列印到控制台(默認是顯示器),然後追加一個換行符。以下兩行等價:

默認情況下 sys.stdout 指向控制台。如果把文件對象賦值給 sys.stdout ,那麼 print () 調用的就是文件對象的 write() 方法。

如果你還想同時在控制台列印的話,最好先將原始的控制台對象引用保存下來,向文件中列印之後再恢復 sys.stdout .

參考:

D. 求用python輸入一個三位自然數,計算並輸出其百位、十位和個位上的數字的代碼(兩種方法)

#方法一:
print('百位:{},十位:{},個位:{}'.format(*input('請輸入一個三位數:')))

#方法二:
i=int(input('請輸入一個三位數:'))
t=(i//100,i//10%10,i%10)
print('百位:{},十位:{},個位:{}'.format(*t))

E. Python,怎麼在輸入非數字時,輸出一句話

Python提供了兩個內置函數從標准輸入讀入一行文本,默認的標准輸入是鍵盤。如下:
1.raw_input
2.input
raw_input函數
raw_input() 函數從標准輸入讀取一個行,並返回一個字元串(去掉結尾的換行符):

復制代碼 代碼如下:

str = raw_input("Enter your input: ");
print "Received input is : ", str

這將提示你輸入任意字元串,然後在屏幕上顯示相同的字元串。當我輸入"Hello Python!",它的輸出如下:

復制代碼 代碼如下:

Enter your input: Hello Python
Received input is : Hello Python

F. Python基礎之:Python中的IO

IO就是輸入和輸出,任何一個程序如果和外部希望有交互的話,都需要使用到IO。相對於java而言,Python中的IO更加的簡單,易用。
本文將會詳細介紹Python中的IO操作。

linux中有三種標准輸入輸出,分別是STDIN,STDOUT,

STDERR,對應的數字是0,1,2。

STDIN是標准輸入,默認從鍵盤讀取信息;

STDOUT是標准輸出,默認將輸出結果輸出至終端;

STDERR是標准錯誤,默認將輸出結果輸出至終端。

我們常用的 2>&1,指將標准輸出、標准錯誤指定為同一輸出路徑 。

python中,我們可以使用print方法來輸出信息。\

我們看下print函數的定義:

print函數將 objects 列印到 file 指定的文本流,以 sep 分隔並在末尾加上 end。 sep, end, file 和 flush 如果存在,那麼必須以關鍵字參數的形式給出。

所有非關鍵字參數都會被轉換為字元串,並會被寫入到流,以 sep 分割,並在末尾加上 end。 sep 和 end 都必須為字元串;它們也可以為 None,這意味著使用默認值。 如果沒有給出 objects,則 print() 將只寫入 end。

file 參數必須是一個具有 write(string) 方法的對象;如果參數不存在或為 None,則將使用 sys.stdout。 由於要列印的參數會被轉換為文本字元串,因此 print()不能用於二進制模式的文件對象。 對於這些對象,可以使用 file.write(...)。

輸出是否被緩存通常決定於 file,但如果 flush 關鍵字參數為真值,輸出流會被強制刷新。

可以看到print的輸出格式還是比較簡單的。我們接下來看一下怎麼豐富輸出的格式。

如果想要格式化字元串,可以在字元串的開始引號之前加上 f 或 F。
這樣的話,我們可以直接在字元串中引入變數值,只需要把變數放在 { 和 } 中間即可。

除了在{ }中放入Python變數之外,還可以在其中放入函數:

在 ':' 後傳遞一個整數可以讓該欄位成為最小字元寬度。方便列對齊:

{ }中的變數後面還可以跟著轉值符號:'!a' 表示應用 ascii() ,'!s' 表示應用 str(),還有 '!r' 表示應用 repr():

除此之外,str本身自帶一個功能強大的format 函數:

調用此方法的字元串可以包含字元串字面值或者以花括弧 {} 括起來的替換域,每個替換域可以包含一個位置參數的數字索引,或者一個關鍵字參數的名稱。 返回的字元串副本中每個替換域都會被替換為對應參數的字元串值。

再看一個使用索引的例子:

看一個關鍵字的例子:

再看一個組合的例子:

還有非常復雜的組合的例子:

或者使用 '**' 符號將 table 作為關鍵字參數傳遞:

還可以使用n類型 '{:n}' 來格式化數字:

如果我們只是想要將Python對象轉換為字元串,那麼可以使用repr()或者str(), str() 函數是用於返回人類可讀的值的表示,而 repr()是用於生成解釋器可讀的表示。
舉個例子:

str對象還提供了一些對字元串進行手動格式化的方法:

字元串對象的 str.rjust()方法通過在左側填充空格來對給定寬度的欄位中的字元串進行右對齊。類似的方法還有 str.ljust()和 str.center()。
如果輸入的字元串太長,它們不會截斷字元串,而是原樣返回。
如果想保證字元串的長度,則可以使用切片: x.ljust(n)[:n] 。
還可以使用str.zfill()來用0填充字元串:

% 也可以用來格式化字元串,給定 'string' % values,則 string 中的 % 實例會以零個或多個 values 元素替換。 此操作通常被稱為字元串插值。

python中文件讀取非常簡單,使用open()方法即可。
open()會返回一個文件對象。我們看一下它的定義:

第一個參數是文件名。
第二個參數是文件打開的模式,可用的模式有:

默認模式為 'r' 。
看一個open文件的例子:

文件打開了,自然需要被關閉,所以我們需要顯示調用 f.close() 方法:

有沒有類似java中的try with resource的自動關閉文件的功能呢?
我們可以使用with,這樣文件在使用完畢之後,會自動被關閉,非常的好用。

文件被關閉之後,如果想要再次讀取,就會報錯:

獲取到文件對象之後,我們就可以調用文件中的方法了。

f.read(size) 會讀取一些數據並將其作為字元串(在文本模式下)或位元組串對象(在二進制模式下)返回。

size 是一個可選的數值參數。 當 size 被省略或者為負數時,將讀取並返回整個文件的內容;當取其他值時,將讀取並返回至多 size 個字元(在文本模式下)或 size 個位元組(在二進制模式下)。 如果已到達文件末尾,f.read() 將返回一個空字元串 ('')。

f.readline() 從文件中讀取一行;換行符(\n)留在字元串的末尾,如果文件不以換行符結尾,則在文件的最後一行省略。如果 f.readline() 返回一個空的字元串,則表示已經到達了文件末尾,而空行使用 '\n' 表示,該字元串只包含一個換行符。

還有一種更加簡單的讀取方法,就是從文件中遍歷:

如果你想以列表的形式讀取文件中的所有行,你也可以使用 list(f) 或 f.readlines()。
f.write(string) 會把 string 的內容寫入到文件中,並返回寫入的字元數。

如果是在文本模式下,那麼在寫入文件之前,需要把對象轉換成為文本形式,我們可以使用str()來進行轉換。

使用f.seek(offset, whence)可以定位文件指針的位置,然後後續會從該位置開始進行讀取操作。

whence 的 0 值表示從文件開頭起算,1 表示使用當前文件位置,2 表示使用文件末尾作為參考點。 whence 如果省略則默認值為 0,即使用文件開頭作為參考點。

JSON是一個很方便進行信息交流的文件格式。我們看下怎麼使用JSON來將對象轉換為字元串:

mps是將對象轉換為json str。 json還有一個mp方法,可以直接將對象存入到文件中。

要從文件中解析出json字元串,可以使用load:

JSON 中的鍵-值對中的鍵永遠是 str類型的。當一個對象被轉化為 JSON 時,字典中所有的鍵都會被強制轉換為字元串。這所造成的結果是字典被轉換為 JSON 然後轉換回字典時可能和原來的不相等。換句話說,如果 x 具有非字元串的鍵,則有 loads(mps(x)) != x。

閱讀全文

與python標准輸入輸出相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:672
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:486
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:382
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:350
風翼app為什麼進不去了 瀏覽:779
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:151
伊克塞爾文檔怎麼進行加密 瀏覽:893
app轉賬是什麼 瀏覽:163