正如标题所说,我想要一个更改文件名的python程序,但是如果已经存在具有该目标名称的文件,我想覆盖.
import os, sys
original = sys.argv[1]
output = sys.argv[2]
os.rename(original, output)
Run Code Online (Sandbox Code Playgroud)
但是,当已经存在具有该目标名称的文件时,我的代码只显示了此错误.
os.rename<original, output>
WindowsError: [Error 183] Cannot create a file when that file already exists
Run Code Online (Sandbox Code Playgroud)
我应该做什么修复?
假设我想查找副标题中包含“法国总统选举”一词的视频列表。
我可以使用 YouTube API 做到这一点吗?
如果它甚至可以在人工生成和自动生成的字幕中搜索,那将是完美的。但是如果它可以搜索两种类型的字幕中的任何一种就足够了。
youtube youtube-api subtitle youtube-javascript-api youtube-data-api
我为Python 2和3安装了两个版本的Anaconda。
我添加了路径。
我使用Anaconda提示。
python program.py
Run Code Online (Sandbox Code Playgroud)
假设我使用的是Python3。例如,它无法理解:
print "hello!"
Run Code Online (Sandbox Code Playgroud)
我试过了:
py program.py
py -2 program.py
Run Code Online (Sandbox Code Playgroud)
但是他们没有用。如何运行Python 2程序?
如果输入:
python
Run Code Online (Sandbox Code Playgroud)
在Acaconda提示下,然后说:
python 3.5.1. Anaconda 2.4.1
Run Code Online (Sandbox Code Playgroud)
因此,提示是假设我正在使用Python 3。
但是我有用Python 2编写的程序和用Python 3编写的程序。
我想在两者之间顺利切换。我应该怎么做?
如果我做
ismember([NaN 0 3 2],[0 NaN])
Run Code Online (Sandbox Code Playgroud)
那么输出就是
0 1 0 0
Run Code Online (Sandbox Code Playgroud)
我明显期待的地方
1 1 0 0
Run Code Online (Sandbox Code Playgroud)
我试过了
ismember(['3' 0 3 2],[0 '3'])
Run Code Online (Sandbox Code Playgroud)
那么输出就是
1 1 0 0
Run Code Online (Sandbox Code Playgroud)
我怎样才能为NaN工作?
以下命令可以生成虚拟变量:
tabulate age, generate(I)
Run Code Online (Sandbox Code Playgroud)
但是,当我想要基于多个变量的虚拟对象时,该怎么办?
例如,我想简洁地做以下事情:
generate I1=1 if age==1 & year==2000
generate I2=1 if age==1 & year==2001
generate I3=1 if age==2 & year==2000
generate I4=1 if age==2 & year==2001
Run Code Online (Sandbox Code Playgroud)
我已经尝试过了:
tabulate age year, generate(I)
Run Code Online (Sandbox Code Playgroud)
但是,它没有用。
当有如此多的m文件进行如此多的计算时,跟踪这个和那个出错的原因真的是一个大任务.
通常情况下,代码中的某处除以0,或者为某些变量保存了Inf的值.
我想让这个很容易检查.一种方法是写
if a == Inf
display('a is infinite')
keyboard
end
Run Code Online (Sandbox Code Playgroud)
如果我每次为每个变量添加这样的东西,它会起作用,但它会很混乱.
如果某个变量在运行过程中为Inf,我可以让MatLab停止或暂停或弹出警告消息吗?
K>> asdfasdf=[1 1 1]
asdfasdf =
1 1 1
K>> asdfasdf(4)=-2.3604 + 0.1536i
asdfasdf =
1.0000 + 0.0000i 1.0000 + 0.0000i 1.0000 + 0.0000i -2.3604 + 0.1536i
Run Code Online (Sandbox Code Playgroud)
为什么前3个元素突然变得复杂?我怎样才能防止Matlab这样做呢?真实是真的.这不应该只是因为另一个元素是想象的而改变为想象的.
考虑下面的代码片段:
local date: display %td_CCYY_NN_DD date(c(current_date), "DMY")
local date_string = subinstr(trim("`date'"), " " , "", .)
save "`date_string'_example", replace
mkdir "`date_string'_example"
Run Code Online (Sandbox Code Playgroud)
这将创建如下输出:
20170521_example.dta
Run Code Online (Sandbox Code Playgroud)
但是,我想创建一个文件名,它也要有时间,而不仅仅是日期。如果时间是下午4点25分01秒,那么我希望具备以下条件:
20170521_162601_example.dta
Run Code Online (Sandbox Code Playgroud)
如何添加此元素?
我尝试将函数放入c(current_time)其中,date()但这没有用。
此外,我试图分配本地宏savedir使用date_string。但是,似乎Stata在后面跟随时无法识别它\:
local date: display %td_CCYY_NN_DD date(c(current_date), "DMY")
local date_string = subinstr(trim("`date'"), " " , "", .)
local savedir "C:\Users\`date_string'_output"
cd "`savedir'
Run Code Online (Sandbox Code Playgroud)
如何保存本地宏savedir?
我知道我可以通过 3 维空间的网格来做到这一点。
如果我做
[X,Y] = meshgrid(1:3,10:14,4:8)
Run Code Online (Sandbox Code Playgroud)
如http://www.mathworks.com/help/matlab/ref/meshgrid.html中所示,然后我将获得 3D 空间上的网格点。
但对于 n 维空间,meshgrid 无法做到这一点。
我应该如何在n维空间(例如n=64)上获得网格点(做类似的事情,如网格网格)?
我在 Stata 中运行以下命令:
eststo: ivregress 2sls y (x=z) control [aw=weight], cluster(cluster) first
esttab using file.tex, b(%9.3f) se(%9.3f) r2(%9.8f) replace
Run Code Online (Sandbox Code Playgroud)
这会生成第二阶段的发布式表格。但是,第一阶段我应该做什么呢?我需要系数和 R^2。
我可以使用任何命令进行发布式输出 - 它不需要是esttab.
我尝试过ivregress2,但没有成功:
_iv_vce_wrk(): 3001 expected 21 arguments but received 20
<istmt>: - function returned error
Run Code Online (Sandbox Code Playgroud) 我正在使用简单的矩阵并得到一些奇怪的东西.
A =
2 3
5 6
8 9
Run Code Online (Sandbox Code Playgroud)
而我这样做了.
A([1 3],[1 2 2])
ans =
2 3 3
8 9 9
Run Code Online (Sandbox Code Playgroud)
而我这样做了.
A([1 3],[1 2])
ans =
2 3
8 9
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚为什么MatLab有这个结果.
或者,更一般地说,A(输入)在最常见的输入中做了什么?
我做了以下
import delimited using "input.txt", delimiters("\t")
Run Code Online (Sandbox Code Playgroud)
但是input.txt没有标题.
我可以看到数据的第一行只是一个标题.
数字变为标题,如v1,v2 ..,字符变为标题,如a,y,..
如果数据看起来像
2014 11 A 03
2014 11 B 06
Run Code Online (Sandbox Code Playgroud)
然后在Stata中加载的数据是
header: v1 v2 a v4
1st row: 2014 11 B 06
Run Code Online (Sandbox Code Playgroud)
如何在不省略input.txt第一行的情况下添加一个"v1,v2,v3 .."的任意标题,我该怎么办?
matlab ×5
stata ×4
python ×2
python-2.7 ×2
anaconda ×1
conda ×1
file-rename ×1
grid ×1
nan ×1
python-3.x ×1
regression ×1
rename ×1
stata-macros ×1
subtitle ×1
youtube ×1
youtube-api ×1