pythonargc
㈠ python 列表a中的5個元素由用戶輸入獲得,print出列表a
#coding=utf-8
myList=[]
for i in range(5)
myList[i]=input() #每個元素都是字元串,要別的類型需要自己轉換
print myList
㈡ python代碼解釋
darray是要查找的字元串的集合
函數isInArray(array,line) 用於查找array中每個字元串是否在line中出現過
這個程序從命令行得到文件名,然後打開文件,查找darray中所包含的字元串在文件每一行是否出現,如果該行不包含darray中的字元串,則將該行寫入到 "原始文件名.result"文件中
with open(fname, 'r') as f: #打開文件
with open(fresult, 'w') as g: #打開儲存結果 的.result文件
for line in f.readlines(): #讀取文件每行
if not isInArray(darray, line): #如果該行不包含任何darray里的字元串
g.write(line) #將該行寫入.result文件
㈢ python中怎麼調用自己的方法
C/C++對Python的調用層次可以分為三個層次, (1) 高層次的調用, (2)純Python調用, (3) Python方法的擴展(也就使向Python輸出調用函數). 這里我主要討論(1)和(2)兩種方法.
1 高層次的調用
這是最簡單的一種在C/C++中調用Python的方法. 它直接的調用Python提供的C調用介面函數, 這些函數主要有: PyRun_SimpleString(), PyRun_SimpleStringFlags(), PyRun_SimpleFile(), PyRun_SimpleFileEx()和PyRun_SimpleFileExFlags()幾個. 函數的具體用法參考Python的文檔.
這里舉個例子來說明這種層次的用法:
由這個例子可見, 在C/C++中調用Python的內容非常簡單, 只要構造一個簡單的Python調用字元串.這里要注意的就是, Python調用串語句之間要用'/n'來分開, 且語句之間不能有空格, 如上面的Python字元串不能寫成: "import sys/n print sys.path" , 否則要出錯的.
// c/c++ 中 Python 調用必須的頭文件
#include <Python.h>
//
int main(int argc, char* argv[])
{
// 初始化Python解析環境
Py_Initialize();
// 構造Python執行腳本
char szPyScript[128];
sprintf(szPyScript, "import sys/nprint sys.path");
if(PyRun_SimpleString(szPyScript) != 0)
{
sprintf(stderr, "execute /'%s/'failed!", szPyScript);
return -1;
}
// 清除Python解析環境
Py_Finalize();
}
//
//
以上的例子也表明了在C/C++中調用Python的基本結構, 就是
(1) 先初始化Python環境然: Py_Initialize()
(2) 具體對Python的操作
(3) 清除Python環境
更復雜的一個使用高層調用的例子, 這個例子用PyRun_SimpleFile的例子.
這里值得注意是, 在Window中:
(1) 鏈接debug版本的時候會自動鏈接PythonXX(_d).lib庫, PythonXX_d安裝時是沒有安裝的, 所以要顯示的指定鏈接PythonXX.lib庫, 不知道VC6.0為什麼還會去找PythonXX_d.lib, 在vs7.0不會.
(2) 編譯時要以 /MD(多線程DLL) 選項編譯(不論時debug版本還時release版本都一樣).
以上我在VC7.0中可以正確的運行, 在VC6.0這樣還不行, 可能和我使用的版本有關系(我用的版本是:Python24.lib). 有知道的請賜教!!
// c/c++ 中 Python 調用必須的頭文件
#include <Python.h>
//
int main(int argc, char* argv[])
{
// 初始化Python解析環境
Py_Initialize();
//
char szFile[] = "PyFile.py";
//sprintf(szPathFile, "%s//%s", szPath, szFile);
FILE* fp = fopen(szFile, "r");
if(PyRun_SimpleFile(fp, szFile) != 0)
{
fclose(fp);
sprintf(stderr, "PyRun_SimpleFile(%s) failed!", saFile);
return -1;
}
fclose(fp);
// 清除Python解析環境
Py_Finalize();
}
2 純Python調用
㈣ 怎麼使用argv
argv:即所謂的參數變數,這個變數保存著運行Python腳本時傳遞給Python腳本的參數。
解包:把argv中的東西取出來,將所有的參數依次賦值給左邊的變數。
在argv.py文件中輸入以下代碼:
from sys import argv
script, first, second, third = argv
print("The script is called:", script)
print("Your first variable is:", first)
print("Your second variable is:", second)
print("Your third variable is:", third)
在DOS下運行(Terminal)argv.py文件及返回:
F:workspacePython-testsrc est1>python argv.py a b c
The script is called: test.py
Your first variable is: a
Your second variable is: b
Your third variable is: c
注意:這里不是直接運行argv.py文件,而是帶了三個參數,否則會報錯。這里argv.py本身就是第一個參數,「a」是第二個參數了。
(4)pythonargc擴展閱讀:
argc,argv 用命令行編譯程序時有用。
主函數main中變數(int argc,char *argv[ ])的含義
有些編譯器允許將main()的返回類型聲明為void,這已不再是合法的C++
main(int argc, char *argv[ ], char **env)才是UNIX和Linux中的標准寫法。
* argv[ ]: 指針數組,用來存放指向字元串參數的指針,每一個元素指向一個參數
argv[0] 指向程序運行的全路徑名
argv[1] 指向在DOS命令行中執行程序名後的第一個字元串
argv[2] 指向執行程序名後的第二個字元串
...
argv[argc]為NULL。
**env:字元串數組。env[ ]的每一個元素都包含ENVVAR=value形式的字元
串。其中ENVVAR為環境變數,value 為ENVVAR的對應值。
argc, argv,env是在main( )函數之前被賦值的,編譯器生成的可執行文件,main( )不是真正的入口點,而是一個標準的函數,這個函數名與具體的操作系統有關。
㈤ python 如何封裝在某帶參數函數之後等待時間
題主你好,
方法及相應代碼見截圖:
*.方法不只一種, 題主看看如果不合適請追問. 上面這種做法的好處是封裝的這個函數func可以帶任意多個位置參數. //就圖主的問題來看, *args就夠了, 如果func函數中還有關鍵字參數,則還需要使用**argv.
-----
希望可以幫到題主, 歡迎追問
㈥ 如何用python將內容一行輸入
直接在命令行運行foo,則」./foo」被當做argv[0],但是通過exec運行foo發現並沒有參數傳入foo(程序沒有任何輸出),也就是說argc值為0。這是什麼原因呢?我們知道argv存放的是傳遞給main函數的命令行參數,當在命令行鍵入」./foo」時,唯一的命令行參數」./foo」就被傳入給main的argv了。所以直接在命令行運行foo就列印出唯一的參數」./foo」。
那麼execl的情況呢?首先看一下execl的原型:
int execl(const char* pathname,const char* arg0,.../*(char*)0*/);
注意到了吧,第一個參數是要執行的程序名,第二個參數才是要傳入待執行程序的第一個參數,而上述main.c中沒有第二個參數(這里說的是execl的第二個參數),也就是沒有給foo傳遞任何參數,foo的參數表argv當然就是空了,或者說argc為0。
㈦ python2.7 怎麼解析命令行輸入的中文參數
本文實例講述了python讀取命令行參數的方法。分享給大家供大家參考。具體分析如下:
如果想對python腳本傳參數,python中對應的argc, argv(c語言的命令行參數)是什麼呢?
需要模塊:sys
參數個數:len(sys.argv)
腳本名: sys.argv[0]
參數1: sys.argv[1]
參數2: sys.argv[2]
test.py:
import sys
print "腳本名:", sys.argv[0]
for i in range(1, len(sys.argv)):
print "參數", i, sys.argv[i]
>>>python test.py hello world
腳本名:test.py
參數 1 hello
參數 2 world
python中使用命令行選項:
例如我們需要一個convert.py腳本。它的作用是處理一個文件,並將處理後的結果輸出到另一個文件中。
要求該腳本滿足以下條件:
1.通過-i -o選項來區別參數是輸入文件還是輸出文件.
>>> python convert.py -i inputfile -o outputfile
2.當不知道convert.py需要哪些參數時,用-h列印出幫助信息
>>> python convert.py -h
getopt函數原形:
getopt.getopt(args, options[, long_options])
convert.py:
import sys, getopt
opts, args = getopt.getopt(sys.argv[1:], "hi:o:")
input_file=""
output_file=""
for op, value in opts:
if op == "-i":
input_file = value
elif op == "-o":
output_file = value
elif op == "-h":
usage()
sys.exit()
代碼解釋:
a) sys.argv[1:]為要處理的參數列表,sys.argv[0]為腳本名,所以用sys.argv[1:]過濾掉腳本名。
b) "hi:o:": 當一個選項只是表示開關狀態時,即後面不帶附加參數時,在分析串中寫入選項字元。當選項後面是帶一個附加參數時,在分析串中寫入選項字元同時後面加一個":"號。所以"hi:o:"就表示"h"是一個開關選項;"i:"和"o:"則表示後面應該帶一個參數。
c) 調用getopt函數。函數返回兩個列表:opts和args。opts為分析出的格式信息。args為不屬於格式信息的剩餘的命令行參數。opts是一個兩元組的列表。每個元素為:(選項串,附加參數)。如果沒有附加參數則為空串''。
getopt函數的第三個參數[, long_options]為可選的長選項參數,上面例子中的都為短選項(如-i -o)
長選項格式舉例:
--version
--file=error.txt
讓一個腳本同時支持短選項和長選項
getopt.getopt(sys.argv[1:], "hi:o:", ["version", "file="])
希望本文所述對大家的Python程序設計有所幫助。
㈧ Python編寫程序 輸入提示「請輸入成績(按回車鍵退出):」,將輸入的百分製成績轉換為相應的等級
編碼思路:
申明兩個變數: 成績cj為 浮點數float 且 取值范圍為 [0,100] 閉區間內; pf為字元類型,接收最終分數評級的字母A,B,C,D,E中的一個。
引導用戶輸入100分制的分數,並用cj接收。
判斷分數是否為一個有效的分數。在不在 [0,100] 區間內,若不在則提示「成績無效」。
在成績有效的情況下,利用if...esle if...else...逐級判斷,分數大於90的評為A,不大於90(在前一判斷後else即取反)的但是又大於80的評為B,以此類推,分別判斷出分數評級C,D,E。將字元賦值給字元變數pf;
最後輸出分數評級。
代碼示例:
//代碼語言:C++#include<iostream>intmain(intargc,constchar*argv[]){floatcj;//成績100分制charpf;//評分A,B,C,D,Estd::cout<<"輸入您的分數:";std::cin>>cj;//輸入的分數賦值給cjif(cj>100||cj<0){//分數小於0或大於100時成績無效std::cout<<"您的成績無效! ";}else{//成績有效時即:[0,100]if(cj>90){//大於90即:(90,100]pf='A';}elseif(cj>=80){//即:[80,90]pf='B';}elseif(cj>=70){//即:[70,80)pf='C';}elseif(cj>=60){//即:[60,70)pf='D';}else{//否則(不大於60)即:[0,60)pf='E';}std::cout<<"您的分數評級為:"<<pf<<" ";//輸出結果}return0;}
㈨ python中的argv.items()代表什麼意思呢
sys.argv[0]表示代碼本身文件路徑。sys.argv[]說白了就是一個從程序外部獲取參數的橋梁,這個「外部」很關鍵,因為從外部取得的參數可以是多個,所以獲得的是一個列表(list),也就是說sys.argv其實可以看作是一個列表。
所以才能用[]提取其中的元素。其第一個元素是程序本身,隨後才依次是外部給予的參數。
Sys.argv[ ]其實就是一個列表,里邊的項為用戶輸入的參數,關鍵就是要明白這參數是從程序外部輸入的,而非代碼本身的什麼地方,要想看到它的效果就應該將程序保存了,從外部來運行程序並給出參數。
(9)pythonargc擴展閱讀
Python的字典的items(), keys(), values()都返回一個list
argc,argv 用命令行編譯程序時有用。
主函數main中變數(int argc,char *argv[ ])的含義
有些編譯器允許將main()的返回類型聲明為void,這已不再是合法的C++
main(int argc, char *argv[ ], char **env)才是UNIX和Linux中的標准寫法。
argc: 整數,用來統計你運行程序時送給main函數的命令行參數的個數