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 Register | Login | Edit Tags | New Questions | 繁体 | 简体


10 questions online user: 33

0
votes
answers
13 views
+10

如何使用FontForge Python分離字形?

0

在'Encoding'菜單下的FontForge GUI中,有一個選項'Detach Glyphs'。我可以用Python做到這一點嗎?如何使用FontForge Python分離字形?

更具體地說,在我的Python腳本中,當我刪除附加到另一個字形的字形時,兩者都被清除。我怎樣才能避免這種情況?

沙发
0
0

我能在這裏找到一個解決辦法https://sourceforge.net/p/fontforge/mailman/message/29723762/

它本質上是:

font.selection.select("a")   #select glyph 
font.copy() 
for i in font.selection.byGlyphs: 
    font.removeGlyph(i) 
font.selection.select("a") 
font.paste() 
0
votes
answers
12 views
+10

如何實現字段和象他們一樣解決國際象棋

-1

我想實現一個叫做Pah Tum的遊戲。 (它是如何工作的我的問題,這是不相關的。)我想在這樣一個控制檯創建一個字段:如何實現字段和象他們一樣解決國際象棋

A B C D 
1 [] [] [] [] 
2 [] [] [] [] 
3 [] [] [] [] 
4 [] [] [] [] 

我已經想通了如何打印但是: 我要定義一個函數中我可以解決特定領域和阻止他們,就像這樣:B3

A B C D 
1 [] [] [] [] 
2 [] [] [] [] 
3 [] [X][] [] 
4 [] [] [] [] 

不知怎的,我無法弄清楚如何做到這一點,而無需使用百行代碼,我打印一步一步的。

+0

你有沒有考慮嵌套列表,其中每個列表repersents行? – timgeb

+0

使用'2d'列表以及_block_field_是什麼意思? – Arman

+0

SO不像隨便的電子郵件或短信。試着正確使用資本我和收縮。 –

沙发
0
2

您可以創建一個類,並使用__setitem__

import string 
class Board: 
    def __init__(self, width): 
     self.w = width 
     self.board = [[[] for i in range(width)] for b in range(width)] 
    def __setitem__(self, coords, val): 
     self.board[coords[0]][coords[-1]] = [val] 
    def __repr__(self): 
     return ' '+' '.join(list(string.ascii_lowercase[:self.w]))+"
"+'
'.join(string.ascii_lowercase[a]+' '.join(str(i) for i in b) for a, b in enumerate(self.board)) 

board = Board(4) 
board[(2, 2)] = 'X' 
print(board) 

輸出:

a b c d 
a[] [] [] [] 
b[] [] [] [] 
c[] [] ['X'] [] 
d[] [] [] [] 
0
votes
answers
10 views
+10

在Python中使用相同的鍵合併兩個字典

3

我有兩個字典與相同的鍵相同。 第字典是:在Python中使用相同的鍵合併兩個字典

{ "key_1" : "AR" , 
    "key_2":"BR" , 
    "key_3" : "CR" } 

第二個是:

{ "key_1" : "signinfication of AR" , 
    "key_2":" signinfication of BR" , 
    "key_3" : " signinfication of CR" } 

,我希望獲得下面的詞典:

{"key_1" : {"AR" : "signinfication of AR"} , 
"key_2" : {"BR" : "signinfication of BR"} , 
"key_3" : {"CR" : "signinfication of CR"} 

謝謝您的幫助!

沙发
0
9

這就像一條線一樣簡單字典理解

>>> {k : {d1[k] : d2[k]} for k in d1.keys() & d2.keys()} 
{ 
    "key_2": { 
     "BR": " signinfication of BR" 
    }, 
    "key_1": { 
     "AR": "signinfication of AR" 
    }, 
    "key_3": { 
     "CR": " signinfication of CR" 
    } 
} 

這裏,d1d2是你的兩個庫。 d1.keys() & d2.keys()將在字典鍵上執行交集,以確保對字典中存在的鍵進行迭代。在這裏,這是

d1.keys() & d2.keys() 
{'key_1', 'key_2', 'key_3'} 

這是很好的一般意義上,當你不能保證兩個字典有完全相同的鍵。


在python2.7及更高版本上,您需要稍作修改,因爲keys()會返回一個列表。使用set.intersection -

>>> {k : {d1[k] : d2[k]} for k in set(d1.keys()).intersection(d2.keys())} 

如果你處理列表的類型的字典工作,那麼上面的代碼需要相應的列表之間的zip平 -

>>> d1 
{ 
    "key_1": [ 
     "AR", 
     "BR", 
     "CR" 
    ], 
    ... 
}  
>>> d2 
{ 
    "key_1": [ 
     "signfication of AR", 
     "signfication of BR", 
     "signfication of CR" 
    ], 
    ... 
} 
>>> {k : dict(zip(d1[k], d2[k])) for k in d1.keys() & d2.keys()} 
{ 
    "key_1": { 
     "BR": "signfication of BR", 
     "CR": "signfication of CR", 
     "AR": "signfication of AR" 
    }, 
    "key_3": { 
     "CE": " signfication of CE", 
     "AE": "signfication of AE", 
     "BE": " signfication of BE" 
    }, 
    "key_2": { 
     "BZ": "signfication of BZ", 
     "CZ": "signfication of CZ", 
     "AZ": "signfication of AZ" 
    } 
} 
板凳
0
2

你也可以zip()在一起的詞典items(),並將它們合併在一起:

d1 = {"key_1" : "AR", 
     "key_2":"BR", 
     "key_3" : "CR"} 

d2 = {"key_1" : "signinfication of AR", 
     "key_2":" signinfication of BR", 
     "key_3" : " signinfication of CR"} 

# make sure both lists have same ordered keys 
l1 = sorted(d1.items()) 
l2 = sorted(d2.items()) 

d = {k1 : {v1:v2} for (k1, v1), (_, v2) in zip(l1, l2)} 

print(d) 

,輸出:

{'key_1': {'AR': 'signinfication of AR'}, 
'key_2': {'BR': ' signinfication of BR'}, 
'key_3': {'CR': ' signinfication of CR'}} 

編輯:

正如@c???s????建議,你可以調用列表sorted荏苒他們,這確保了兩個字典具有相同的順序前:key_1key_2,key_3。您還可以對密鑰進行初步檢查,例如檢查它們的交集,以確保兩個字典具有相同的密鑰。

+1

你能保證密鑰從兩個類型的字典以相同的順序返回? –

+0

@c???s????嗯我沒有想到,對不起。我想OP可以在你的回答中使用你的建議,以確保這種情況發生。無論如何,我會添加這個,謝謝。 – RoadRunner

+2

保證這不是什麼大事,只要調用'sorted'並且它應該工作。 Upvoted,歡呼聲。 –

地板
0
1

你可以試試這個:

s = { "key_1" : "AR" , 
"key_2":"BR" , 
"key_3" : "CR" } 

d = { "key_1" : "signinfication of AR" , 
"key_2":" signinfication of BR" , 
"key_3" : " signinfication of CR" } 
new_d = {a:{b:d[a]} for a, b in s.items()} 

輸出:

{'key_1': {'AR': 'signinfication of AR'}, 'key_3': {'CR': ' signinfication of CR'}, 'key_2': {'BR': ' signinfication of BR'}} 
0
votes
answers
10 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
10 views
+10

我有最初是csv文件的熊貓數組。我想從列中的所有行刪除特定的詞:文本

1

這裏是熊貓數組:我有最初是csv文件的熊貓數組。我想從列中的所有行刪除特定的詞:文本

id   text          spam 
4016  Subject: re : vacation vince : i just found ... 0 
4017  Subject: re : receipts from visit jim , than... 0 
4018  Subject: re : enron case study update wow ! a...0 
4019  Subject: re : interest david , please , call... 0 
4020  Subject: news : aurora 5 . 2 update aurora ve...0 

我想刪除所有列「文」字「主題」行,使其成爲:

id   text          spam 
4016  re : vacation vince : i just found ... 0 
4017  re : receipts from visit jim , than... 0 
4018  re : enron case study update wow ! a...0 
4019  re : interest david , please , call... 0 
4020  news : aurora 5 . 2 update aurora ve...0 
沙发
0
2

我認爲你需要replace - ^手段開始每個字符串和s+一個或多個空格:

df['text'] = df['text'].replace('^Subject:s+', '', regex=True) 
print (df) 
    id          text spam 
0 4016 re : vacation vince : i just found ...  0 
1 4017 re : receipts from visit jim , than...  0 
2 4018 re : enron case study update wow ! a...  0 
3 4019 re : interest david , please , call...  0 
4 4020 news : aurora 5 . 2 update aurora ve...  0 

但如果需要刪除第一9字符包括whitespace S:

df['text'] = df['text'].str[9:] 
板凳
0
1

試試這個:

df.text = df.text.apply(lambda row: row[9:]) 

每一行都將在列改爲「文字」,其中第9個字符「主題:」是祛瘀編輯。

0
votes
answers
9 views
+10

Celery,Django ..製作任務/線程啓動子任務/線程?

3

我使用Django的芹菜,我試圖得到一個任務,像下面這樣:Celery,Django ..製作任務/線程啓動子任務/線程?

class task1 (Task) 
    def run (self): 
     launch_some_other_task.delay() 

但它似乎並沒有工作,我可以進入更詳細至於我的代碼但我想我會先問問這種事情是否會起作用,因爲這似乎不適合我。我爲我使用硒找到這個必要,一個web測試框架,其中有時會掛在那裏,我不能從中得到任何輸出,所以我希望能夠殺死如果關閉,如果某一條件不符合(在指定的秒數內用特定值更新memcache變量)。

感謝這個

+0

上面的代碼,就可以(在理論上)......究竟會發生什麼? – asksol 2010-10-05 08:48:14

+0

我記不太清楚了,我覺得它只是不啓動這一進程的應該..我的代碼是怎麼樣的混亂和複雜的(因爲它周圍的硒軟件,這是有時那種不可預測的,至少對建我正在使用它)。我要提出一個更簡單的測試,所以我可以張貼在這裏,明天(代碼) – Rick 2010-10-05 09:45:00

+0

對於我來說,這聽起來好像你是黑客硒什麼是不應該做的事:如何進行相關檢測硒代碼生成代碼?如何是不可預知的硒,如果你正確地等待DOM?更多的代碼示例將不勝感激。 – Almad 2010-10-10 00:18:50

沙发
0
0

任何意見,請確保您已經添加了以下到您的urls.py

import djcelery 
djcelery.setup_loader() 
0
votes
answers
9 views
+10

使用Yield語句返回輸出,當使用scrapy沒有發現搜索查詢時python

0

我正在按照教程使用scrapy庫從網站上刮掉多個頁面。本教程使用yield語句通過css選擇器和xpath選擇器從頁面的html和css結構中獲取信息。我決定使用if語句來檢查搜索查詢是否找到結果,並使用else語句來輸出當搜索查詢沒有遇到結果時要執行的操作。當代碼執行提取公司名稱的else語句,以及位置和銷售字段時,我想要一個傳達'未找到'的自定義輸出字符串時出現問題。使用Yield語句返回輸出,當使用scrapy沒有發現搜索查詢時python

當我運行該腳本,我得到以下錯誤:

File "C:Users....hoover-scraperscraper.py", line 28 

'Location': 'Not Found' 
     ^

我覺得這是不使用yield語句,這就是爲什麼我收到的SyntaxError消息的正確方法。因此,我想知道在查詢遇到空搜索時,是否有任何方法可以爲銷售和位置字段輸出字符串「未找到」。

我的這部分代碼:

def parse(self, response): 
    NAME_SELECTOR ="td a::text" 
    LOCATION_SELECTOR ='.//tr/td/text()' #using xpath to grab information for Location and Sales 
    SALES_SELECTOR = './/tr/td/text()' 

if response.css(NAME_SELECTOR).extract_first(): #Checks to see if the company name field has data if not prints 'No results found' 
     yield { 

      'Company Name': response.css(NAME_SELECTOR).extract_first(), 
      'Location' : response.xpath(LOCATION_SELECTOR)[0].extract(), #Location comes first inside the td tags thus the [0] 
      'Sales' : response.xpath(SALES_SELECTOR)[1].extract(), 
     } 

    else: 
     yield { 
      'Company Name': response.css("dd.value.term::text").extract_first() #identifies company name which data was not found 
      'Location': 'Not Found' 
      'Sales': 'Not Found' 
     } 
+0

參見:https://stackoverflow.com/questions/231767/what-does-the-yield-keyword-do – MrT

沙发
0
2

yield僅用於發電。你只是想從你的方法中返回這個價值嗎?然後在兩個地方將yield替換爲return

如果您需要稍後在同一個方法中使用該值,請將字典分配給一個變量。像

if response.css(NAME_SELECTOR).extract_first(): #Checks to see if the company name field has data if not prints 'No results found' 
     result = { 

      'Company Name': response.css(NAME_SELECTOR).extract_first(), 
      'Location' : response.xpath(LOCATION_SELECTOR)[0].extract(), #Location comes first inside the td tags thus the [0] 
      'Sales' : response.xpath(SALES_SELECTOR)[1].extract(), 
     } 

    else: 
     result = { 
      'Company Name': response.css("dd.value.term::text").extract_first(), #identifies company name which data was not found 
      'Location': 'Not Found', 
      'Sales': 'Not Found' 
     } 
    # do something with result 
    ... 
    # or just: 
    return result 
+0

是的,我以後需要使用這些值,所以將它們轉換爲一個字典的作品爲了我。我在else語句中的每個字典條目之後添加了昏迷,並且它工作正常。 –

0
votes
answers
9 views
+10

優雅的方式與多個dataframes工作,大熊貓

0

我有一些代碼目前看起來是這樣的:優雅的方式與多個dataframes工作,大熊貓

if os.path.isfile('D:\df_1'): 
    df_1 = pd.read_pickle('D:\df_1') 
else: 
    df_1 = pd.DataFrame(columns = ['Date', 'Location', 'Product']) 
if os.path.isfile('D:\df_2'): 
    df_2 = pd.read_pickle('D:\df_2') 
else: 
    df_2 = pd.DataFrame(columns = ['Date', 'Location', 'Product']) 

[...] 

if os.path.isfile('D:\df_20'): 
    df_20 = pd.read_pickle('D:\df_20') 
else: 
    df_20 = pd.DataFrame(columns = ['Date', 'Location', 'Product']) 

基本上我做的是檢查,如果數據幀已經存在,如果它不加載它否則創建一個空的數據框。我需要這樣做,因爲代碼會嘗試將新數據附加到每個數據幀。所以,我會碰到這樣的:

[retrieve new data and clean it] 
df_1 = pd.concat([df_1, df_1_new_data]) 

這樣做對所有的20個dataframes我有(它們含有不同的東西,所以我想將它們分開),然後將其保存,以當日再次檢索它們並添加新的數據給他們:

df_1.to_pickle('D:\df_1') 
df_2.to_pickle('D:\df_2') 
[...] 
df_20.to_pickle('D:\df_20') 

現在,它已經非常沉重,做20個數據幀,但我可能需要添加更多!有沒有辦法讀取不同的數據框,然後將它們寫入for循環或類似的東西?那麼爲了減少我現在有許多簡單的2行代碼循環的代碼行?謝謝!

+0

你爲什麼不在循環中做這些事情? –

+0

我需要動態地創建變量名稱,並且我知道這將是一件壞事。 – giga

+0

使用字典。 –

沙发
0
2

DRY:你不應該多次寫相同的東西(不止一次)。

使用函數,循環,其他基本語言工具。

def create_df(path): 
    if os.path.isfile(path): 
     df = pd.read_pickle(path) 
    else: 
     df = pd.DataFrame(columns = ['Date', 'Location', 'Product']) 
    return df 

all_paths = (...) 

# dict where key is you path and value is dataframe  
all_df = {p: create_df(p) for p in all_paths} 

for p in all_paths: 
    all_df[p].to_pickle(p) 
0
votes
answers
9 views
+10

Django - 默認個人資料圖片不顯示

0

我對圖像和圖像域有疑問。但是,我選擇的默認圖片不顯示,只有一個空白的圓圈。這是我default pictureDjango - 默認個人資料圖片不顯示

Models.py

class UserProfile(models.Model): 
    user = models.OneToOneField(User) 
    description = models.CharField(max_length=255, default='') 
    city = models.CharField(max_length=100, default='') 
    website = models.URLField(default='') 

    def __str__(self): 
     return self.user.username 

class ProfilePicture(models.Model): 
    user = models.ForeignKey(User) 
    image = models.ImageField(upload_to='profile_image', default='profile_image/Default.jpg') 

Forms.py

class UploadPictureForm(forms.Form): 
    image = forms.ImageField() 

profile.html

<div class="container"> 
    <div id="left"> 
     <div id="profilecard"> 
      {% if user.userprofile.image %} 
       <img class="circular--square" src="{{ }}" width="200" height="200"> 
      {% endif %} 
      <div id="info"> 
       <br> 
       <h3>{{ user.first_name }} {{ user.last_name }}</h3> 
       <p>@{{ user }}</p> 
       <p>{{ user.userprofile.city }}</p> 
       <p>{{ user.userprofile.website }}</p> 
       <p><i>{{ user.userprofile.description }}</i></p> 
      </div> 
     </div> 
沙发
0
0

profile.htmlsrc標籤沒有被提起。如果您想要使用默認圖像,您可以在模板中放置一個else標記,並將src指向一個靜態文件。

<div class="container"> 
    <div id="left"> 
     <div id="profilecard"> 
      {% if user.userprofile.image %} 
       <img class="circular--square" src="{{ user.userprofile.image.url }}" width="200" height="200"> 
      {% endif %} 
      <div id="info"> 
       <br> 
       <h3>{{ user.first_name }} {{ user.last_name }}</h3> 
       <p>@{{ user }}</p> 
       <p>{{ user.userprofile.city }}</p> 
       <p>{{ user.userprofile.website }}</p> 
       <p><i>{{ user.userprofile.description }}</i></p> 
      </div> 
     </div> 
    </div> 
</div> 
板凳
0
0

。在你的代碼錯誤,所以你需要做到這一點,你不能從USERPROFILE模型中獲得的圖像:

更改:

{% if user.userprofile.image %} 

到:

{% if user.profilepicture_set.count > 0 %} 

將img標籤的src屬性更改爲:

src="{{ user.profilepicture_set.all.0.image.url }}" 

固定碼:

<div class="container"> 
    <div id="left"> 
     <div id="profilecard"> 
      {% if user.profilepicture_set.count > 0 %} 
       <img class="circular--square" src="{{ user.profilepicture_set.all.0.image.url }}" width="200" height="200"> 
      {% endif %} 
      <div id="info"> 
       <br> 
       <h3>{{ user.first_name }} {{ user.last_name }}</h3> 
       <p>@{{ user }}</p> 
       <p>{{ user.userprofile.city }}</p> 
       <p>{{ user.userprofile.website }}</p> 
       <p><i>{{ user.userprofile.description }}</i></p> 
      </div> 
     </div> 
    </div> 
</div> 

ForeignKeyProfilePicture類使用related_name將定製的用戶

user = models.ForeignKey(User, related_name='image') 

profilepicture_set鍵,您可以訪問它的模板像

{% if user.image.count > 0 %} 
    <img class="circular--square" src="{{ user.image.all.0.image.url }}" width="200" height="200"> 
{% endif %} 

您也可以使用OneToOneField到ProfilePicture用戶字段如果資料圖片將只有一個:

user = models.OneToOneField(User) 

和模板:

{% if user.profilepicture %} 
    <img class="circular--square" src="{{ user.profilepicture.image.url }}" width="200" height="200"> 
{% endif %} 
+0

你能解釋一下你用你的外鍵related_name是什麼意思? – lordVader

+0

更新了我的答案 –

0
votes
answers
9 views
+10

設定背景色爲白色包含白色

0

因此,我已這個矩陣,其被定義如下:設定背景色爲白色包含白色

for row in range (0,squareSize): 
      for col in range (0,squareSize): 
       if new_matrix[row][col]==1: 
        new_matrix[row][col]=color_matrix[row][col] #gradient given by values in color_matrix 
       if new_matrix[row][col]==2: 
        new_matrix[row][col]=150 #color red 
       if new_matrix[row][col]==0: 
        new_matrix[row][col]=100 #color purple 

SquareSize是185,這是零的條目是點在圓內,而2的條目是圓形內部但圓外的條目。 它們都被映射到不同的顏色,並且其餘部分被映射根據由下式給出顏色梯度:

cmap = mpl.cm.hsv 

使用繪製它後:

plt.matshow(new_matrix, interpolation='nearest',cmap=cmap) 

這是輸出:enter image description here

不過,我想圈是白色的......這不是漸變顏色的部分:(我怎麼能這樣做?

沙发
0
1

你可以設置VALU es你想出現白色到NaN。這將阻止它們被抽出,從而在這些區域中顯示背景顏色。背景默認爲白色,因此它們會顯示爲白色。

import matplotlib.pyplot as plt 
import numpy as np 

x,y=np.meshgrid(np.arange(185),np.arange(185)) 
data = np.exp(-((x-185//2)**2+(y-185//2)**2)/60.**2) 

data[(x-185//2)**2+(y-185//2)**2 > 80**2 ] = np.nan 

plt.imshow(data, cmap=plt.cm.hsv) 
plt.colorbar() 
plt.show() 

enter image description here