我想在正在运行的docker容器中的文本文件中写入一行文本.这是我到目前为止所尝试的:
docker exec -d app_$i eval echo "server.url=$server_url" >> /home/app/.app/app.config
Run Code Online (Sandbox Code Playgroud)
响应:
/home/user/.app/app.config: No such file or directory
Run Code Online (Sandbox Code Playgroud)
第二次尝试:
cfg_add="echo 'server.url=$server_url' >> /home/user/.app/app.config"
docker exec -i app_$i eval $cfg_add
Run Code Online (Sandbox Code Playgroud)
响应:
exec: "eval": executable file not found in $PATH
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我正在尝试将csv文件导入psql数据库.在阅读了之间的区别之后COPY,\copy我在执行脚本时遇到了这个错误.
这是我的代码切割:
try:
csv_data = os.path.realpath('test.csv')
con = psycopg2.connect(database = 'db01', user = 'postgres')
cur = con.cursor()
cur.execute("\copy stamm_data from '%s' DELIMITER ';' csv header" % csv_data)
con.commit()
Run Code Online (Sandbox Code Playgroud)
这是错误:
Error: syntax error at or near "\"
LINE 1: \copy stamm_data from '/home/jw/dev/test.csv' delimiter ';' ...
^
Run Code Online (Sandbox Code Playgroud)
使用时COPY我得到:
Error: could not open file "/home/jw/dev/test.csv" for reading: Permission denied
Run Code Online (Sandbox Code Playgroud)
虽然psql用户'postgres'是超级用户,但运行该脚本的ubuntu用户对test.csv文件具有读取权限.
有任何想法吗?
我logging在python中使用该模块.当我在命令行上使用错误的参数调用脚本时,日志文件在某些时候包含单词"None",我不知道它来自何处.
这是我的代码切割,我在那里执行logging.exception:
# Show script where to find blank- and viva-data / set argv
vz = glob.glob("/home/jw/cmp_blank_viva/*csv")
skript, s1, m1 = argv
# Define script-functions and logging-config
logging.basicConfig(level=logging.ERROR, filename='cmp_blank_viva.log', format='%(asctime)s:%(message)s', datefmt='%m/%d/%Y %I:%M:%S %p')
def open_data(vz, s1, m1):
try:
checker = []
for i in vz:
if "drhot_viva_check_%s" % m1 in i:
blank_data = csv.reader(open(i, 'r'))
checker.append(1)
else:
pass
if 1 not in checker:
logging.exception("Could not open viva file with %s %s.\n" % (s1, m1))
checker = []
for …Run Code Online (Sandbox Code Playgroud) 我想用带有--env-file选项的环境变量来运行我的docker容器,就像docker doc:docker run命令中提到的那样
我尝试使用以下内容创建env.list在我的主目录中命名的文件/home/jw/data:
SSL_CERTIFICATE_PATH=/opt/onlyoffice/Data/certs/onlyoffice.crt
SSL_KEY_PATH=/opt/onlyoffice/Data/certs/onlyoffice.key
SSL_DHPARAM_PATH=/opt/onlyoffice/Data/certs/dhparam.pem
Run Code Online (Sandbox Code Playgroud)
之后我将目录添加/home/jw/data/到我的$PATH环境变量中:
PATH=$PATH:/home/jw/data/; export PATH
Run Code Online (Sandbox Code Playgroud)
在同一个shell上,我启动了这样的docker容器:
sudo docker run -i -t -d --name onlyoffice-document-server onlyoffice/documentserver --env-file /home/jw/data/env.list debian env
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
Error response from daemon: Cannot start container 45ff897e0cfdc676f4f0bac98e027e2c567558a173a7f80c02ba6dc86482a176: [8] System error: exec: "--env-file": executable file not found in $PAT
Run Code Online (Sandbox Code Playgroud)
我也尝试设置$PATHunder root并执行上面提到的run命令,并显示相同的错误消息.
我错过了什么?
我不明白。我尝试发送带有 csv 文件作为附件的电子邮件。第一次运行脚本很好,我收到了带有 csv 文件作为附件的电子邮件。但是在运行一次后,脚本崩溃并显示一条奇怪的 Traceback 消息。
到目前为止,这是我的代码:
import smtplib
import email.utils
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.mime.text import MIMEText
from email import Encoders
msg = MIMEMultipart('foo')
msg['To'] = email.utils.formataddr(('foo', 'foo@foobar.de'))
msg['From'] = email.utils.formataddr(('foo', 'foo@foo'))
msg['Subject'] = 'foo'
# Attach a file
mail_file = file('foo.csv').read()
mail_file = MIMEBase('application', 'csv')
mail_file.set_payload(mail_file)
mail_file.add_header('Content-Disposition', 'attachment', filename='foo.csv')
Encoders.encode_base64(mail_file)
msg.attach(mail_file)
# Define SMTP server
server = smtplib.SMTP('localhost')
server.set_debuglevel(True) # show communication with the server
# Send the mail
try:
server.sendmail('foo@foo', ['foo@foobar.de'], …Run Code Online (Sandbox Code Playgroud) 我不明白.我有一个包含以下内容的CSV数据:
wurst;ball;hoden;sack
1;2;3;4
4;3;2;1
Run Code Online (Sandbox Code Playgroud)
我想迭代CSV数据并将头放在一个列表中,将内容放在另一个列表中.到目前为止,我的代码是:
data = [ i.strip() for i in open('test.csv', 'r').readlines() ]
for i_c, i in enumerate(data):
if i_c == 0:
heads = i
else:
content = i
heads.split(";")
content.split(";")
print heads
Run Code Online (Sandbox Code Playgroud)
这总是返回以下字符串,而不是有效列表.
wurst;ball;hoden;sack
Run Code Online (Sandbox Code Playgroud)
为什么拆分不能在这个字符串上工作?
问候和圣诞快乐,1月
python-2.7 ×4
csv ×2
docker ×2
attachment ×1
bash ×1
copy ×1
debian ×1
email ×1
list ×1
logging ×1
mime-types ×1
postgresql ×1
psql ×1
psycopg2 ×1
python ×1