第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

字符列表而不是 Python 中的字符串

字符列表而不是 Python 中的字符串

守著一只汪 2021-07-16 18:19:41
我正在嘗試使用 運行命令subprocess.check_call(),但從輸出看來,我提供的參數(shù)并未解釋為字符串,而是解釋為字符列表。我試圖運行的命令:7z x test.rar。實際運行的是什么:subprocess.CalledProcessError: Command '['7z', 'x', 't', 'e', 's', 't', '.', 'r', 'a', 'r'] 返回非零退出狀態(tài) 2。出于某種原因,文件名以字符分隔。我錯過了什么?代碼:def main():    parser = argparse.ArgumentParser()    parser.add_argument("input", help="File/Folder to extract")    args = parser.parse_args()    extract_file(args.input)def extract_file(file):    extract_cmd = ['7z']    extract_cmd.extend('x')    extract_cmd.extend(file)    subprocess.check_call(extract_cmd)
查看完整描述

2 回答

?
交互式愛情

TA貢獻1712條經(jīng)驗 獲得超3個贊

列表和字符串的文檔非常準確地涵蓋了這一點。 extend將新元素放入一個列表中,您從一個包含單個字符串的列表開始。您從未使用過字符串連接運算符。試試這個,而不是:

def extract_file(file_name):
    extract_cmd = ["7z x " + file_name]
    subprocess.check_call(extract_cmd)

注意:我更改了您的參數(shù),因為file是內(nèi)置類型。


查看完整回答
反對 回復 2021-07-28
?
HUH函數(shù)

TA貢獻1836條經(jīng)驗 獲得超4個贊

你可以在這里做兩種方法:


subprocess.check_call(['7z', 'x', file])

或者如果您不太擔心 shell 注入并且這是本地代碼,只需傳遞整個字符串:


subprocess.check_call('{} {} {}'.format('7z', 'x', file), shell=True)

其他人已經(jīng)解釋了為什么您會在列表中看到“字符”。擴展將列出您的字符串(在本例中為 file_name)并將其添加到列表的末尾。


a = [11]

a.extend('apples')

print a

輸出:


[11, 'a', 'p', 'p', 'l', 'e', 's']


查看完整回答
反對 回復 2021-07-28
  • 2 回答
  • 0 關注
  • 166 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號