如何发送utf8电子邮件?
import sys
import smtplib
import email
import re
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
def sendmail(firm, fromEmail, to, template, subject, date):
with open(template, encoding="utf-8") as template_file:
message = template_file.read()
message = re.sub(r"{{\s*firm\s*}}", firm, message)
message = re.sub(r"{{\s*date\s*}}", date, message)
message = re.sub(r"{{\s*from\s*}}", fromEmail, message)
message = re.sub(r"{{\s*to\s*}}", to, message)
message = re.sub(r"{{\s*subject\s*}}", subject, message)
msg = MIMEMultipart("alternative")
msg.set_charset("utf-8")
msg["Subject"] = subject
msg["From"] = fromEmail
msg["To"] = to
#Read from template
html = message[message.find("html:") + len("html:"):message.find("text:")].strip()
text = …Run Code Online (Sandbox Code Playgroud) 如何在vim中的第一个大写字符之前或之后跳转?
如果我想从(例如)camelCase中删除或选择第一个单词.如果我是m-character,我可以做FcdtC,但有更普遍的方法吗?
我使用了Launcher Icon Generator来生成一个简单的图标.它还会生成web_hi_res_512.png,据我所知,这是在Google Play上发布应用所需的启动器图标大小.但这个图标应该放在哪里?
许多人使用空格而不是标签.我用它们两个.行的开头和第一个非空白字符的空格.启动新文档没有问题,如果我需要修改一个更好的适应使用格式.有时我仍然需要修复空间问题.
根据搜索和替换我可以做到:%s/spaces_for_tab/tab/g.它很简单,适用于很多情况.无论如何,我想只在行的开头重构空格.
我正在视图中间绘制(我想绘制)一个点,并且我在 AVD(Nexus 4、Android 4.4.2 - API 级别 19、Intel Atom (x86)、RAM 768、Use Host)上得到了想要的结果GPU),但我在真实设备上绘制时遇到问题 [Nexus 5、Nexus 7(2012 版)]。在真实设备上只有空白(清晰的颜色)视图,中间没有点。
这是一个完整的代码。这相对简单。注意我还尝试通过 glVertexAttribPointer (glEnableVertexAttribArray) 推送点数据(位置)。
你能帮我解决这个问题吗?
package com.example.point.app;
import android.app.Activity;
import android.content.Context;
import android.opengl.GLES20;
import android.opengl.GLSurfaceView;
import android.os.Bundle;
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new PointView(this));
}
class PointView extends GLSurfaceView {
public PointView(Context context) {
super(context);
setEGLContextClientVersion(2);
setEGLConfigChooser(8, 8, 8, 8, 16, 0);
setRenderer(new PointRenderer());
}
class PointRenderer implements Renderer {
private void …Run Code Online (Sandbox Code Playgroud) 有没有理由第二个操作数的类型必须是int?
...
// I would like to do this
public static StringList operator<<(StringList list, string s) {
list.Add(s);
return list;
}
// but only int is supported...
...
Run Code Online (Sandbox Code Playgroud)
编辑:只是肯定...我可以重载operator*for get(例如)字符串列表
class MyString {
string val;
public MyString(string s) {
val = s;
}
public static List<string> operator*(MyString s, int count) {
List<string> list = new List<string>();
while (count-- > 0) {
list.Add(s.val);
}
return list;
}
}
...
foreach (var s in new MyString("value") * 3) {
s.print(); // object …Run Code Online (Sandbox Code Playgroud) 我想使用一些 windows api,但我不知道如何开始。有没有相关的教程?
无论如何,我有一个简单的代码。你能帮我解决这个问题吗?
package mypackage
/*
#cgo LDFLAGS: -luser32
#include <windows.h>
*/
import "C"
import "unsafe"
func MessageBox(m string) {
cm := C.CString(s)
defer C.free(unsafe.Pointer(cm))
C.MessageBoxA(C.HWND(nil), (*C.CHAR)(cm), C.LPCSTR(nil), 0) // It display a message.
}
Run Code Online (Sandbox Code Playgroud)
编辑:我可以处理 char* 但仍然不知道 wchar_t* 是什么。
import "syscall"
func MessageBoxU(m string) {
C.MessageBoxW(C.HWND(nil), (*C.WCHAR)(unsafe.Pointer(syscall.StringToUTF16Ptr(m))), C.LPCWSTR(nil), 0)
}
Run Code Online (Sandbox Code Playgroud)
如果这不是成语,请告诉我。
为什么我不能这样做:
files = [file for file in ['default.txt'].append(sys.argv[1:]) if os.path.exists(file)]
Run Code Online (Sandbox Code Playgroud) 聚合物中有类似angularjs指令的transclude属性吗?什么允许我将一些元素包含在模板中的特定位置?
我想实现以下内容:
<my-header title="My title">
<my-header-item name="Item 1"></my-header-item>
<my-header-item name="Item 2"></my-header-item>
</my-header>
Run Code Online (Sandbox Code Playgroud)
可能表达的意思是:
<h1>My title</h1> <!-- "My title" given by my-header's title attribute -->
<ul>
<li>Item 1 <!-- given by my-header-item -->
<li>Item 2
</ul>
Run Code Online (Sandbox Code Playgroud)
我不确定这是否是聚合物的任务,或者这是否是使用聚合物的典型方法.我问,因为我开始喜欢聚合物,我想保持惯用思维.
在Java和类似语言中,必须明确表示类实现接口的真正原因是什么?
想象一下隐式实现:
interface Flyer { void fly(); }
public class Duck { public void fly() {...} }
public class Plane { public void fly() {...} }
public class Hoe { void hangAround() {...} }
void startFlying(Flyer flyer) {...}
void race() {
...
startFlying(duck); // OK
startFlying(plane); // OK
startFlying(hoe); // Compilation error.
}
Run Code Online (Sandbox Code Playgroud)
编译器知道方法的签名,返回类型(当然还有修饰符).在这一点上,似乎很清楚,没有必要明确指定Duck和Plane实现Flyer.
我会说可以从Java中删除"实现XYZ"而不用担心.
没有区别,请在编译时检查,这样就可以了.
另一方面:@JBNizet提到了具有相同签名和返回类型的方法的不同含义.
我会用他的例子:
interface Runner { void run(); }
public class Guy { public void run(); }
public class Gal { public void run(); } …Run Code Online (Sandbox Code Playgroud)