• 关于

    python 路径~

    的搜索结果

回答

推荐使用 Homebrew 来安装第三方工具。自己安装的python散落在电脑各处,删除起来比较麻烦。今天在此记录一下删除的过程(本人以Python3.6为例)。删除Python 3.6 frameworksudo rm -rf /Library/Frameworks/Python.framework/Versions/3.6删除Python 3.6 应用目录sudo rm -rf “/Applications/Python 3.6”删除/usr/local/bin 目录下指向的Python3.6的连接cd /usr/local/bin/ ls -l /usr/local/bin | grep ‘../Library/Frameworks/Python.framework/Versions/3.6’ | awk ‘{print $9}’ | tr -d @ | xargs rm如果需要的话,编辑配置路径的环境文件,例如 ~/.bash_login, ~/.bash_profile, ~/.cshrc, ~/.profile, ~/.tcshrc, and/or ~/.zprofile,当初安装的时候,默认是将Python3.6的信息配置在 ~/.bash_profile 文件中,将其相关信息删除

xuning715 2019-12-02 01:10:11 0 浏览量 回答数 0

问题

求助各位~一个有关linux中.sh脚本里写循环的问题,谢谢O(∩_∩)O~

杨冬芳 2019-12-01 20:26:17 1001 浏览量 回答数 2

回答

Rexlabpython脚本多文件编译import不好用发现sys.path里没有当前路径求解决 嗯,楼主也发现了啊, 保存脚本的时候提示的是Jython。 在xlab里面的path指向的是jar文件。 估计只能写好python后在给的那个xlab接口里使用。 不知道在底层做了什么封装,但愿有人能够给个解释~~~

find_my_way` 2019-12-02 03:12:42 0 浏览量 回答数 0

阿里云试用中心,为您提供0门槛上云实践机会!

0元试用32+款产品,最高免费12个月!拨打95187-1,咨询专业上云建议!

回答

你说的问题我没有遇到过,但有一些经验想与你分享下。 我实习的公司使用PHP和Python,通讯的方式是PHPHTTP请求到PythonTornado的接口,Python完成计算后返回Json 然后有一天我升级我的MacPython后,发现公司的Python模块都不能用了,出现了ImportError,仔细查找之下,发现我的系统里存在三个PythonPackage存储路径: 第一个是用brewinstall安装的: /Library/Python/2.7/site-packages 还有不知道从哪冒出来的: /Library/Python/2.7/site-packages/lib/python2.7/site-packages 以及系统自带的: /usr/local/lib/python2.7/site-packages/ 我也没弄明白pip到底将模块安装到了哪里,就干脆在~/.profile里将三个路径都加进了$PYTHONPATH里,在~/.profile后面追加 exportPYTHONPATH=/Library/Python/2.7/site-packages:/Library/Python/2.7/site-packages/lib/python2.7/site-packages:$PYTHONPATH 我的建议是,你可以尝试像我一样看看你的Python是不是也存在多个模块路径,将它们都找到并添加到全局模块搜索路径,或许会解决此问题。 不知对你是否有帮助。谢谢您的指教。受用了

爱吃鱼的程序员 2020-06-20 16:59:53 0 浏览量 回答数 0

问题

python中pip出错?报错

爱吃鱼的程序员 2020-06-07 22:17:20 0 浏览量 回答数 1

回答

在~/.bash_profile文件里面,加一行alias python="python3的执行文件路径"就可以啦

夜雀 2019-12-02 00:18:51 0 浏览量 回答数 0

问题

cron下定时执行python

a123456678 2019-12-01 20:10:02 1326 浏览量 回答数 1

回答

Python版本的设置: pyenv global # 全局设置python版本为指定版本,设置全局的 Python 版本,通过将版本号写入 ~/.pyenv/version 文件的方式。 pyenv local # 设置当前路径下python版本为指定版本,设置 Python 本地版本,通过将版本号写入当前目录下的 .python-version 文件的方式。通过这种方式设置的 Python 版本优先级较 global 高。 pyenv shell # 设置当前shell窗口使用的python版本为指定版本,设置面向 shell 的 Python 版本,通过设置当前 shell 的 PYENV_VERSION 环境变量的方式。这个版本的优先级比 local 和 global 都要高。–unset 参数可以用于取消当前 shell 设定的版本。 优先级:shell > local > global pyenv会从当前目录开始向上逐级查找.python-versiob文件,直到根目录为止,若找不到,则使用global版本。

游客lz7tjhznmiyda 2019-12-02 01:07:42 0 浏览量 回答数 0

问题

在 Debian 8 系统里安装 jupyter notebook

dongshan8 2019-12-01 21:45:13 3725 浏览量 回答数 1

回答

数据文件放在哪里是一个常见的问题,不同的应用程序以不同的方式处理它。一些想法: 例如,要自定义Vim应用程序,将config放在~/中。vimrc和其他 在~ /款。vim在类unix操作系统(Windows有相应的 位置) 例子: myapp——script-dir = . ./scripts或myapp -config conf.cfg或APP_NAME_DIR=/tmp myapp 您可以组合这些方法中的一些。也许您希望应用程序首先在环境变量中查找基本目录名(如<app_name>_base_dir),如果不存在,则在~/中查找。配置/ < app_name >什么的。我建议你看看你最喜欢的一些应用程序是如何解决这个问题的,以获得更多的灵感。 一旦您从某个地方获得了base_dir路径,我强烈建议使用pathlib库来操作路径。它提供了较新的Python版本,可以让你做这样的事情: from pathlib import Path base_dir = Path(__file__).parent # consider approaches above to get base_dir script_dir = base_dir / 'scripts' print(script_dir) # prints: <location of this file>/scripts

kun坤 2019-12-27 11:24:45 0 浏览量 回答数 0

问题

《手把手安装Cloudify 3.1》?报错

爱吃鱼的程序员 2020-06-14 16:29:34 0 浏览量 回答数 1

回答

<preclass="literal-block">tarxzvfDjango-1.5.4.tar.gzcdDjango-1.5.4sudopythonsetup.pyinstall移动到他的父目录,就是去掉路径的/Django-1.5.4-py2.7.egg。就好了。注意权限还是不行~~>>>importdjango>>>django.path['/usr/local/lib/python2.7/dist-packages/django']>>>importdjango就会报错~删除已经安装的django,下载一个新的,然后根据解压后目录里面的说明文档重新安装。easy_install不是自动安装的么?<divclass="ref"> 引用来自“pitttttttt”的答案<divclass=ref_body>删除已经安装的django,下载一个新的,然后根据解压后目录里面的说明文档重新安装。OK搞定了!ubuntu下的easy_install不怎么靠谱啊!你的意思是不用easy_install安装而是去官旺下载个tar.gz?

爱吃鱼的程序员 2020-06-22 15:10:48 0 浏览量 回答数 0

问题

请问python 3.x读取csv文件报错:OSError: Initializ?400报错

爱吃鱼的程序员 2020-06-08 14:34:47 0 浏览量 回答数 1

回答

您要做的是访问一个环境变量,例如$HOME,然后您的脚本将接管它。这比Python稍微高一点(任何脚本都可以这样做)。 在Python中,您可以使用: import os HOME = os.getenv('HOME') 去得到它。 一种更简洁(且跨平台)的方法是使用os.path.expanduser(),例如: import os HOME = os.path.expanduser('~') 在这两种情况下,您都应该在HOME中获取路径的/Users/user.name部分,您可以从那里获取它。 例如: result = [ y for x in os.walk('/Users/user.name/Desktop/automation_project/cloned_git_repo') for y in glob(os.path.join(x[0], '*.csv'))] 可能成为: import os HOME = os.path.expanduser('~') result = [ y for x in os.walk(os.path.join(HOME, 'Desktop/automation_project/cloned_git_repo')) for y in glob(os.path.join(x[0], '*.csv'))] 更灵活的方法是使用更高级的包,例如appdir,它提供了跨平台的方法来访问各种标准路径。

kun坤 2019-12-27 16:59:59 0 浏览量 回答数 0

回答

答案就是 'D:\\2006\\200601\\sh\\xxxx\\SH600590.csv' % name Python 2.7.6 (default, Sep 9 2014, 15:04:36) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> path_tmp = 'D:\\2006\\200601\\sh\\%s\\SH600590.csv' >>> >>> path_tmp 'D:\\2006\\200601\\sh\\%s\\SH600590.csv' >>> x = ['abc', 'abs', 'aaa', 'hello'] >>> x ['abc', 'abs', 'aaa', 'hello'] >>> for name in x: ... path = path_tmp % name ... print path ... D:\2006\200601\sh\abc\SH600590.csv D:\2006\200601\sh\abs\SH600590.csv D:\2006\200601\sh\aaa\SH600590.csv D:\2006\200601\sh\hello\SH600590.csv >>> ######嗯嗯~可是我在得到path的时候卡住了,这是我这部分的代码 for name in middle: path=path_tmp % name print(path) 提示错误: path=path_tmp % name ValueError: unsupported format character '\' (0x5c) at index 27请问是我空格问题出错了吗?麻烦你啦~######回复 @何以笙箫默wonder : 不会。print时才是\2006\200601,实际字符串内容仍然是\\2006\\200601######嗯嗯~但是还有一个问题,就是输出一串路径之后我还要读这些文件,也就是要引用这个路劲,但是这种方法最后导出的路径就是\2006\200601,但是‘\数字’这种形式在python里面好像代表字符串, 所以识别不出来,请问您知道这个问题如何解决吗?###### 路径存到列表中。迭代列表。 ######比如我要引入60个csv文件,它们路径相似,首先我想导入它们的文件路径‘D:\\2006\\200601\\sh\\xxxx\\SH600590.csv’,每个文件的路径只有xxxx部分是不同的,我把这60个应该有的xxxx已经存入到一个list里面,想通过循环,在xxxx处设置一个变量,按顺序读取list中的数据,从而读取路径,这个可以实现吗?还是路径中不能有这种变量存在?麻烦啦!######format

kun坤 2020-06-07 21:15:57 0 浏览量 回答数 0

回答

您可以尝试运行otool来确切找出MySQLdbC扩展_mysql.so正在查找的库路径: $ otool -L /Users/yanigisawa/.python-eggs/MySQL_python-1.2.3-py2.6-macosx-10.6-universal.egg-tmp/_mysql.so 然后是已安装的MySQL库文件的库名称: $ otool -DX /usr/local/mysql/lib/libmysqlclient.16.dylib 但是您不必诉诸设置DYLD_LIBRARY_PATH(或install_name_tool用于修改可执行文件);设置它的需要几乎总是表明组件构建或安装不正确。以我的经验,MySQL项目在其OS X构建和安装程序的一致性方面没有很好的跟踪记录,因为您引用的这个问题往往会得到证实。 试图让的工作相结合Python,MySQLdb以及MySQL在OS X 10.6库是无奈的一个非常常见的原因:很多关于它的问题在这里SO和其他地方。有很多原因。我的建议是从第三方分销商之一那里获得完整的解决方案,该解决方案将构建和安装您所需的所有内容的兼容版本。如果您需要随着时间的推移升级组件,它应该可以继续工作。这些年来,我取得了很大的成功MacPorts;其他人更喜欢Fink或更新HomeBrew。使用MacPorts,从MacPorts安装基本文件后。dmg,您可以像这样构建所有内容: $ sudo port selfupdate # ensure the port files are up-to-date $ sudo port install py26-mysql MacPorts Python将在上提供/opt/local/bin/python2.6。如果您想运行Django,那么也有一个端口。 编辑:使用来自的更新输出otool,您可以看到库路径名不匹配。MySQLdb扩展名要求一个相对路径名(没有initial /),而MySQL库使用绝对路径(通常是您想要的)来宣传自己。这似乎与MySQL问题59006相反,但是,在不确切知道到目前为止您已经执行了哪些步骤的情况下,很难说出如何达到此状态。您可能可以使用install_name_tool来打补丁_mysql.so以具有绝对路径名,这也将消除对set的任何需要DYLD_LIBRARY_PATH。值得尝试: $ cd ~/.python-eggs/MySQL_python-1.2.3-py2.6-macosx-10.6-universal.egg-tmp $ sudo install_name_tool -change libmysqlclient.16.dylib /usr/local/mysql/lib/libmysqlclient.16.dylib _mysql.so 但这不应该让您感到温暖和模糊,可以在需要更新某些内容时重现结果。试图将来自不同来源的所有这些片段粘合成有效的东西确实没有任何好处。来源:stack overflow

保持可爱mmm 2020-05-17 19:44:25 0 浏览量 回答数 0

问题

scrapy运行项目error:unknown command crawl? 400 报错

爱吃鱼的程序员 2020-05-30 21:12:56 0 浏览量 回答数 1

回答

python可以做shell脚本吗? 首先介绍一个函数: os.system(command) 这个函数可以调用shell运行命令行command并且返回它的返回值。试一下在 python的解释器里输入os.system(”ls -l”),就可以看到”ls”列出了当前目录下的文件。可以说,通过这个函数,python就拥有了shell的所有能力。呵呵。。不过,通常这条命令不需要用到。因为shell常用的那些命令在python中通常有对应而且同样简洁的写法。 shell中最常用的是ls命令,python对应的写法是:os.listdir(dirname),这个函数返回字符串列表,里面是所有的文件名,不过不包含”.”和”..”。如果要遍历整个目录的话就会比较复杂一点。我们等下再说吧。先在解释器里试一下: os.listdir(”/”) [’tmp’, ‘misc’, ‘opt’, ‘root’, ‘.autorelabel’, ’sbin’, ’srv’, ‘.autofsck’, ‘mnt’, ‘usr’, ‘var’, ‘etc’, ’selinux’, ‘lib’, ‘net’, ‘lost found’, ’sys’, ‘media’, ‘dev’, ‘proc’, ‘boot’, ‘home’, ‘bin’] 就像这样,接下去所有命令都可以在python的解释器里直接运行观看结果。 对应于cp命令的是:shutil.copy(src,dest),这个函数有两个参数,参数src是指源文件的名字,参数dest则是目标文件或者目标目录的名字。 如果dest是一个目录名,就会在那个目录下创建一个相同名字的文件。与shutil.copy函数相类似的是 shutil.copy2(src,dest),不过copy2还会复制最后存取时间和最后更新时间。 不过,shell的cp命令还可以复制目录,python的shutil.copy却不行,第一个参数只能是一个文件。这怎么办?其实,python还有个shutil.copytree(src,dst[,symlinks]) 。参数多了一个symlinks,它是一个布尔值,如果是True的话就创建符号链接。 移动或者重命名文件和目录呢?估计被聪明的朋友猜到了,shutil.move(src,dst),呵呵。。与mv命令类似,如果src和dst在同一个文件系统上,shutil.move只是简单改一下名字,如果src和dst在不同的文件系统上,shutil.move会先把src复制到dst,然后删除src文件。看到现在,大多数朋友应该已经对 python的能力有点眉目了,接下来我就列个表,介绍一下其它的函数: os.chdir(dirname)把当前工作目录切换到dirname下 os.getcwd()返回当前的工作目录路径 os.chroot(dirname)把dirname作为进程的根目录。和*nix下的chroot命令类似 os.chmod(path,mode)更改path的权限位。mode可以是以下值(使用or)的组合: os.S_ISUIDos.S_ISGIDos.S_ENFMTos.S_ISVTXos.S_IREADos.S_IWRITEos.S_IEXECos.S_IRWXUos.S_IRUSRos.S_IWUSRos.S_IXUSRos.S_IRWXGos.S_IRGRPos.S_IWGRPos.S_IXGRPos.S_IRWXOos.S_IROTHos.S_IWOTHos.S_IXOTH 具体它们是什么含义,就不仔细说了,基本上就是R代表读,W代表写,X代表执行权限。USR 代表用户,GRP代表组,OTH代表其它。 os.chown(path,uid,gid)改变文件的属主。uid和gid为-1的时候不改变原来的属主。 os.link(src,dst)创建硬连接 os.mkdir(path,[mode])创建目录。mode的意义参见os.chmod(),默认是0777 os.makedirs(path,[mode])和os.mkdir()类似,不过会先创建不存在的父目录。 os.readlink(path)返回path这个符号链接所指向的路径 os.remove(path)删除文件,不能用于删除目录 os.rmdir(path)删除文件夹,不能用于删除文件 os.symlink(src,dst)创建符号链接 shutil.rmtree(path[,ignore_errors[,onerror]]) 删除文件夹介绍了这么多,其实只要查一下os和shutil两个模块的文档就有了,呵呵。。真正编写 shell脚本的时候还需要注意: 1.环境变量。python的环境变量保存在os.environ这个字典里,可以用普通字典的方法修改它,使用system启动其它程序的时候会自动被继承。比如: os.environ[”fish”]=”nothing”不过也要注意,环境变量的值只能是字符串。和shell有些不同的是,python没有 export环境变量这个概念。为什么没有呢?因为python没有必要有:-) 2.os.path这个模块里包含了很多关于路径名处理的函数。在shell里路径名处理好像不是很重要,但是在python里经常需要用到。最常用的两个是分离和合并目录名和文件名: os.path.split(path) -> (dirname,basename)这个函数会把一个路径分离为两部分,比如:os.path.split(”/foo /bar.dat”)会返回(”/foo”,”bar.dat”) os.path.join(dirname,basename)这个函数会把目录名和文件名组合成一个完整的路径名,比如:os.path.join(”/foo”,”bar.dat”)会返回”/foo/bar.dat”。这个函数和os.path.split()刚好相反。 还有这些函数: os.path.abspath(path)把path转成绝对路径 os.path.expanduser(path)把path中包含的”~”和”~user”转换成用户目录 os.path.expandvars(path)根据环境变量的值替换path中包含的”$name”和”${name}”,比如环境变量 FISH=nothing,那os.path.expandvars(”$FISH/abc”)会返回”nothing/abc” os.path.normpath(path)去掉path中包含的”.”和”..” os.path.splitext(path)把path分离成基本名和扩展名。比如:os.path.splitext(”/foo /bar.tar.bz2″)返回(’/foo/bar.tar’, ‘.bz2′)。要注意它和os.path.split()的区别 3.在os模块有一个很好用的函数叫os.stat()没有介绍,因为os.path模块里包含了一组和它具有同样功能的函数,但是名字更好记一点。 os.path.exists(path)判断文件或者目录是否存在 os.path.isfile(判断path所指向的是否是一个普通文件,而不是目录 os.path.isdir(path) 判断path所指向的是否是一个目录,而不是普通文件 os.path.islink(path)判断path所指向的是否是一个符号链接 os.path.ismount(path)判断path所指向的是否是一个挂接点(mount point) os.path.getatime(path)返回path所指向的文件或者目录的最后存取时间。 os.path.getmtime(path)返回path所指向的文件或者目录的最后修改时间 os.path.getctime(path)返回path所指向的文件的创建时间 os.path.getsize(path返回path所指向的文件的大小 4.应用python编写shell脚本经常要用到os,shutil,glob(正则表达式的文件名),tempfile(临时文件),pwd(操作/etc/passwd文件),grp(操作/etc/group文件),commands(取得一个命令的输出)。前面两个已经基本上介绍完了,后面几个很简单,看一下文档就可以了。 5.sys.argv是一个列表,保存了python程序的命令行参数。其中 sys.argv[0]是程序本身的名字。不能光说不练,接下来我们就编写一个用于复制文件的简单脚本。前两天叫我写脚本的同事有个几万个文件的目录,他想复制这些文件到其它的目录,又不能直接复制目录本身。他试了一下”cp src/* dest/”结果报了一个命令行太长的错误,让我帮他写一个脚本。操起python来:import sys,os.path,shutilfor f in os.listdir(sys.argv[1]):shutil.copy(os.path.join(sys.argv[1],f),sys.argv[2]) 再试一下linuxapp版里的帖子——把一个文件夹下的所有文件重命名成 10001~10999。可以这样写:import os.path,sysdirname=sys.argv[1]i=10001for f in os.listdir(dirname):src=os.path.join(dirname,f)if os.path.isdir(src):continueos.rename(src,str(i)) i =1 os.chkdir(path) 转换到目录path 下。 os.system('md a') 可以直接创建目录。 os.name字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'。● os.getcwd()函数得到当前工作目录,即当前Python脚本工作的目录路径。● os.getenv()和os.putenv()函数分别用来读取和设置环境变量。● os.listdir()返回指定目录下的所有文件和目录名。● os.remove()函数用来删除一个文件。● os.system()函数用来运行shell命令。● os.linesep字符串给出当前平台使用的行终止符。例如,Windows使用'rn',Linux使用'n'而Mac使用'r'。● os.path.split()函数返回一个路径的目录名和文件名。 os.path.split('/home/swaroop/byte/code/poem.txt') ('/home/swaroop/byte/code', 'poem.txt')● os.path.isfile()和os.path.isdir()函数分别检验给出的路径是一个文件还是目录。类似地,os.path.exists()函数用来检验给出的路径是否真地存在。 文件重定向 已有PY文件new1.py ,在命令行下输入:new1>new.txt 可以将new1运行的结果输出到文件new.txt,这称为流重定向。

元芳啊 2019-12-02 01:04:36 0 浏览量 回答数 0

回答

windows 版本,安装时候默认配置的path变量为 "%APPDEPLOY%; C:\Python27" 中间多了个空格,导致无法正常识别python路径。 ------------------------- ubuntu 下,解压web版本~$ unzip appdeploy-python-1.0.3.zip Archive:  appdeploy-python-1.0.3.zip  inflating: appdeploy-python-1.0.3-Source.tar.gz   extracting: appdeploy-python-1.0.3-Windows.zip     creating: ╩╡└¤/  inflating: ╩╡└¤/appdeploy.py     creating: ╩╡└¤/java/   creating: ╩╡└¤/java/myFirstWebApp/  inflating: ╩╡└¤/java/myFirstWebApp/pom.xml     creating: ╩╡└¤/java/myFirstWebApp/src/   creating: ╩╡└¤/java/myFirstWebApp/src/main/   creating: ╩╡└¤/java/myFirstWebApp/src/main/webapp/   creating: ╩╡└¤/java/myFirstWebApp/src/main/webapp/images/  inflating: ╩╡└¤/java/myFirstWebApp/src/main/webapp/index.jsp     creating: ╩╡└¤/java/myFirstWebApp/src/main/webapp/styles/  inflating: ╩╡└¤/java/myFirstWebApp/src/main/webapp/styles/style.css     creating: ╩╡└¤/java/myFirstWebApp/src/main/webapp/WEB-INF/  inflating: ╩╡└¤/java/myFirstWebApp/src/main/webapp/WEB-INF/web.xml     creating: ╩╡└¤/php/  inflating: ╩╡└¤/php/index.html    inflating: ╩╡└¤/php/index.php    inflating: ╩╡└¤/php/random.php     creating: ╬─╡╡/  inflating: ╬─╡╡/░в└я╘╞AppDeploy╩╣╙├╩╓▓с-Python░ц.pdf

akira 2019-12-01 23:19:13 0 浏览量 回答数 0

问题

python如何请求本地网站链接?报错

爱吃鱼的程序员 2020-06-22 17:23:55 0 浏览量 回答数 1

回答

一、文件的打开和创建 ? 12345 f = open('/tmp/test.txt')f.read()'hello python!nhello world!n'f 二、文件的读取步骤:打开 -- 读取 -- 关闭 ? 1234 f = open('/tmp/test.txt')f.read() 'hello python!nhello world!n' f.close() 读取数据是后期数据处理的必要步骤。.txt是广泛使用的数据文件格式。一些.csv, .xlsx等文件可以转换为.txt 文件进行读取。我常使用的是Python自带的I/O接口,将数据读取进来存放在list中,然后再用numpy科学计算包将list的数据转换为array格式,从而可以像MATLAB一样进行科学计算。 下面是一段常用的读取txt文件代码,可以用在大多数的txt文件读取中 ? 12345678910111213141516 filename = 'array_reflection_2D_TM_vertical_normE_center.txt' # txt文件和当前脚本在同一目录下,所以不用写具体路径pos = []Efield = []with open(filename, 'r') as file_to_read: while True: lines = file_to_read.readline() # 整行读取数据 if not lines: break pass p_tmp, E_tmp = [float(i) for i in lines.split()] # 将整行数据分割处理,如果分割符是空格,括号里就不用传入参数,如果是逗号, 则传入‘,'字符。 pos.append(p_tmp) # 添加新读取的数据 Efield.append(E_tmp) pass pos = np.array(pos) # 将数据从list类型转换为array类型。 Efield = np.array(Efield) pass 例如下面是将要读入的txt文件 2016626171647895.png (429×301) 经过读取后,在Enthought Canopy的variable window查看读入的数据, 左侧为pos,右侧为Efield。 2016626171713978.png (148×277)2016626171743777.png (147×280) 三、文件写入(慎重,小心别清空原本的文件)步骤:打开 -- 写入 -- (保存)关闭 直接的写入数据是不行的,因为默认打开的是'r' 只读模式 ? 123456 f.write('hello boy')Traceback (most recent call last): File "", line 1, in IOError: File not open for writing f 应该先指定可写的模式 ? 12 f1 = open('/tmp/test.txt','w')f1.write('hello boy!') 但此时数据只写到了缓存中,并未保存到文件,而且从下面的输出可以看到,原先里面的配置被清空了 ? 12 [root@node1 ~]# cat /tmp/test.txt[root@node1 ~]# 关闭这个文件即可将缓存中的数据写入到文件中 ? 123 f1.close() [root@node1 ~]# cat /tmp/test.txt[root@node1 ~]# hello boy! 注意:这一步需要相当慎重,因为如果编辑的文件存在的话,这一步操作会先清空这个文件再重新写入。那么如果不要清空文件再写入该如何做呢? 使用r+ 模式不会先清空,但是会替换掉原先的文件,如下面的例子:hello boy! 被替换成hello aay! ? 12345 f2 = open('/tmp/test.txt','r+')f2.write('nhello aa!')f2.close() [root@node1 python]# cat /tmp/test.txthello aay! 如何实现不替换? ? 12345678 f2 = open('/tmp/test.txt','r+')f2.read() 'hello girl!' f2.write('nhello boy!')f2.close() [root@node1 python]# cat /tmp/test.txthello girl!hello boy! 可以看到,如果在写之前先读取一下文件,再进行写入,则写入的数据会添加到文件末尾而不会替换掉原先的文件。这是因为指针引起的,r+ 模式的指针默认是在文件的开头,如果直接写入,则会覆盖源文件,通过read() 读取文件后,指针会移到文件的末尾,再写入数据就不会有问题了。这里也可以使用a 模式 ? 12345678 f = open('/tmp/test.txt','a')f.write('nhello man!')f.close() [root@node1 python]# cat /tmp/test.txthello girl!hello boy!hello man! 关于其他模式的介绍,见下表: 2016626170852899.png (713×317) 文件对象的方法:f.readline() 逐行读取数据 方法一: ? 123456789 f = open('/tmp/test.txt')f.readline() 'hello girl!n' f.readline() 'hello boy!n' f.readline() 'hello man!' f.readline() '' 方法二: ? 123456789101112 for i in open('/tmp/test.txt'): ... print i...hello girl!hello boy!hello man!f.readlines() 将文件内容以列表的形式存放 f = open('/tmp/test.txt')f.readlines() ['hello girl!n', 'hello boy!n', 'hello man!'] f.close() f.next() 逐行读取数据,和f.readline() 相似,唯一不同的是,f.readline() 读取到最后如果没有数据会返回空,而f.next() 没读取到数据则会报错 ? 12345678910111213141516 f = open('/tmp/test.txt')f.readlines() ['hello girl!n', 'hello boy!n', 'hello man!'] f.close() f = open('/tmp/test.txt')f.next() 'hello girl!n' f.next() 'hello boy!n' f.next() 'hello man!' f.next() Traceback (most recent call last):File "", line 1, in StopIteration f.writelines() 多行写入 ? 1234567891011 l = ['nhello dear!','nhello son!','nhello baby!n']f = open('/tmp/test.txt','a')f.writelines(l)f.close() [root@node1 python]# cat /tmp/test.txthello girl!hello boy!hello man!hello dear!hello son!hello baby! f.seek(偏移量,选项) ? 12345678910111213141516 f = open('/tmp/test.txt','r+')f.readline() 'hello girl!n' f.readline() 'hello boy!n' f.readline() 'hello man!n' f.readline() ' ' f.close()f = open('/tmp/test.txt','r+')f.read() 'hello girl!nhello boy!nhello man!n' f.readline() '' f.close() 这个例子可以充分的解释前面使用r+这个模式的时候,为什么需要执行f.read()之后才能正常插入f.seek(偏移量,选项)(1)选项=0,表示将文件指针指向从文件头部到“偏移量”字节处 (2)选项=1,表示将文件指针指向从文件的当前位置,向后移动“偏移量”字节 (3)选项=2,表示将文件指针指向从文件的尾部,向前移动“偏移量”字节 偏移量:正数表示向右偏移,负数表示向左偏移 ? 12345678910111213 f = open('/tmp/test.txt','r+')f.seek(0,2)f.readline() '' f.seek(0,0)f.readline() 'hello girl!n' f.readline() 'hello boy!n' f.readline() 'hello man!n' f.readline() '' f.flush() 将修改写入到文件中(无需关闭文件) ? 12 f.write('hello python!')f.flush() ? 1 [root@node1 python]# cat /tmp/test.txt ? 1234 hello girl!hello boy!hello man!hello python! f.tell() 获取指针位置 ? 123456789 f = open('/tmp/test.txt')f.readline() 'hello girl!n' f.tell() 12 f.readline() 'hello boy!n' f.tell() 23 四、内容查找和替换1、内容查找实例:统计文件中hello个数 思路:打开文件,遍历文件内容,通过正则表达式匹配关键字,统计匹配个数。 ? 1 [root@node1 ~]# cat /tmp/test.txt ? 1234 hello girl!hello boy!hello man!hello python! 脚本如下: 方法一: ? 12345678910 !/usr/bin/python import ref = open('/tmp/test.txt')source = f.read()f.close()r = r'hello's = len(re.findall(r,source))print s[root@node1 python]# python count.py4 方法二: ? 123456789101112 !/usr/bin/python import refp = file("/tmp/test.txt",'r')count = 0for s in fp.readlines():li = re.findall("hello",s)if len(li)>0:count = count + len(li)print "Search",count, "hello"fp.close()[root@node1 python]# python count1.pySearch 4 hello 2、替换实例:把test.txt 中的hello全部换为"hi",并把结果保存到myhello.txt中。 ? 1234567891011121314 !/usr/bin/python import ref1 = open('/tmp/test.txt')f2 = open('/tmp/myhello.txt','r+')for s in f1.readlines():f2.write(s.replace('hello','hi'))f1.close()f2.close()[root@node1 python]# touch /tmp/myhello.txt[root@node1 ~]# cat /tmp/myhello.txthi girl!hi boy!hi man!hi python! 实例:读取文件test.txt内容,去除空行和注释行后,以行为单位进行排序,并将结果输出为result.txt。test.txt 的内容如下所示: ? 12345678910111213141516171819 some words Sometimes in life,You find a special friend;Someone who changes your life just by being part of it.Someone who makes you laugh until you can't stop;Someone who makes you believe that there really is good in the world.Someone who convinces you that there really is an unlocked door just waiting for you to open it.This is Forever Friendship.when you're down,and the world seems dark and empty,Your forever friend lifts you up in spirits and makes that dark and empty worldsuddenly seem bright and full.Your forever friend gets you through the hard times,the sad times,and the confused times.If you turn and walk away,Your forever friend follows,If you lose you way,Your forever friend guides you and cheers you on.Your forever friend holds your hand and tells you that everything is going to be okay. 脚本如下: ? 12345678910 f = open('cdays-4-test.txt')result = list()for line in f.readlines(): # 逐行读取数据line = line.strip() #去掉每行头尾空白if not len(line) or line.startswith('#'): # 判断是否是空行或注释行continue #是的话,跳过不处理result.append(line) #保存result.sort() #排序结果print resultopen('cdays-4-result.txt','w').write('%s' % 'n'.join(result))

xuning715 2019-12-02 01:10:18 0 浏览量 回答数 0

回答

1.Python数据结构篇 数据结构篇主要是阅读[Problem Solving with Python](Welcome to Problem Solving with Algorithms and Data Structures) [该网址链接可能会比较慢]时写下的阅读记录,当然,也结合了部分[算法导论](Introduction to Algorithms)中的内容,此外还有不少wikipedia上的内容,所以内容比较多,可能有点杂乱。这部分主要是介绍了如何使用Python实现常用的一些数据结构,例如堆栈、队列、二叉树等等,也有Python内置的数据结构性能的分析,同时还包括了搜索和排序(在算法设计篇中会有更加详细的介绍)的简单总结。每篇文章都有实现代码,内容比较多,简单算法一般是大致介绍下思想及算法流程,复杂的算法会给出各种图示和代码实现详细介绍。 **这一部分是下面算法设计篇的前篇,如果数据结构还不错的可以直接看算法设计篇,遇到问题可以回来看数据结构篇中的某个具体内容充电一下,我个人认为直接读算法设计篇比较好,因为大家时间也都比较宝贵,如果你会来读这些文章说明你肯定有一定基础了,后面的算法设计篇中更多的是思想,这里更多的是代码而已,嘿嘿。** (1)[搜索](Python Data Structures) 简述顺序查找和二分查找,详述Hash查找(hash函数的设计以及如何避免冲突) (2)[排序](Python Data Structures) 简述各种排序算法的思想以及它的图示和实现 (3)[数据结构](Python Data Structures) 简述Python内置数据结构的性能分析和实现常用的数据结构:栈、队列和二叉堆 (4)[树总结](Python Data Structures) 简述二叉树,详述二叉搜索树和AVL树的思想和实现 2.Python算法设计篇 算法设计篇主要是阅读[Python Algorithms: Mastering Basic Algorithms in the Python Language](Python Algorithms: Mastering Basic Algorithms in the Python Language)[**点击链接可进入Springer免费下载原书电子版**]之后写下的读书总结,原书大部分内容结合了经典书籍[算法导论](Introduction to Algorithms),内容更加细致深入,主要是介绍了各种常用的算法设计思想,以及如何使用Python高效巧妙地实现这些算法,这里有别于前面的数据结构篇,部分算法例如排序就不会详细介绍它的实现细节,而是侧重于它内在的算法思想。这部分使用了一些与数据结构有关的第三方模块,因为这篇的重点是算法的思想以及实现,所以并没有去重新实现每个数据结构,但是在介绍算法的同时会分析Python内置数据结构以及第三方数据结构模块的优缺点,也就意味着该篇比前面都要难不少,但是我想我的介绍应该还算简单明了,因为我用的都是比较朴实的语言,并没有像算法导论一样列出一堆性质和定理,主要是对着某个问题一步步思考然后算法就出来了,嘿嘿,除此之外,里面还有很多关于python开发的内容,精彩真的不容错过。 这里每篇文章都有实现代码,但是代码我一般都不会分析,更多地是分析算法思想,所以内容都比较多,即便如此也没有包括原书对应章节的所有内容,因为内容实在太丰富了,所以我只是选择经典的算法实例来介绍算法核心思想,除此之外,还有不少内容是原书没有的,部分是来自算法导论,部分是来自我自己的感悟,嘻嘻。该篇对于大神们来说是小菜,请一笑而过,对于菜鸟们来说可能有点难啃,所以最适合的是和我水平差不多的,对各个算法都有所了解但是理解还不算深刻的半桶水的程序猿,嘿嘿。 本篇的顺序按照原书[Python Algorithms: Mastering Basic Algorithms in the Python Language](Python Algorithms: Mastering Basic Algorithms in the Python Language)的章节来安排的(章节标题部分相同部分不同哟),为了节省时间以及保持原著的原滋原味,部分内容(一般是比较难以翻译和理解的内容)直接摘自原著英文内容。 **1.你也许觉得很多内容你都知道嘛,没有看的必要,其实如果是我的话我也会这么想,但是如果只是归纳一个算法有哪些步骤,那这个总结也就没有意义了,我觉得这个总结的亮点在于想办法说清楚一个算法是怎么想出来的,有哪些需要注意的,如何进行优化的等等,采用问答式的方式让读者和我一起来想出某个问题的解,每篇文章之后都还有一两道小题练手哟** **2.你也许还会说算法导论不是既权威又全面么,基本上每个算法都还有详细的证明呢,读算法导论岂不更好些,当然,你如果想读算法导论的话我不拦着你,读完了感觉自己整个人都不好了别怪小弟没有提醒你哟,嘻嘻嘻,左一个性质右一个定理实在不适合算法科普的啦,没有多少人能够坚持读完的。但是码农与蛇的故事内容不多哟,呵呵呵** **3.如果你细读本系列的话我保证你会有不少收获的,需要看算法导论哪个部分的地方我会给出提示的,嘿嘿。温馨提示,前面三节内容都是介绍基础知识,所以精彩内容从第4节开始哟,么么哒 O(∩_∩)O~** (1)[Python Algorithms - C1 Introduction](Python Algorithms) 本节主要是对原书中的内容做些简单介绍,说明算法的重要性以及各章节的内容概要。 (2)[Python Algorithms - C2 The basics](Python Algorithms) **本节主要介绍了三个内容:算法渐近运行时间的表示方法、六条算法性能评估的经验以及Python中树和图的实现方式。** (3)[Python Algorithms - C3 Counting 101](Python Algorithms) 原书主要介绍了一些基础数学,例如排列组合以及递归循环等,但是本节只重点介绍计算算法的运行时间的三种方法 (4)[Python Algorithms - C4 Induction and Recursion and Reduction](Python Algorithms) **本节主要介绍算法设计的三个核心知识:Induction(推导)、Recursion(递归)和Reduction(规约),这是原书的重点和难点部分** (5)[Python Algorithms - C5 Traversal](Python Algorithms) **本节主要介绍图的遍历算法BFS和DFS,以及对拓扑排序的另一种解法和寻找图的(强)连通分量的算法** (6)[Python Algorithms - C6 Divide and Combine and Conquer](Python Algorithms) **本节主要介绍分治法策略,提到了树形问题的平衡性以及基于分治策略的排序算法** (7)[Python Algorithms - C7 Greedy](Python Algorithms) **本节主要通过几个例子来介绍贪心策略,主要包括背包问题、哈夫曼编码和最小生成树等等** (8)[Python Algorithms - C8 Dynamic Programming](Python Algorithms) **本节主要结合一些经典的动规问题介绍动态规划的备忘录法和迭代法这两种实现方式,并对这两种方式进行对比** (9)[Python Algorithms - C9 Graphs](Python Algorithms) **本节主要介绍图算法中的各种最短路径算法,从不同的角度揭示它们的内核以及它们的异同**

一键天涯 2019-12-02 01:23:49 0 浏览量 回答数 0

问题

阿里云部署django项目(nginx+uwsgi+python3+mysql),部署后无法访问?

刘刚_ 2020-05-23 21:13:40 7 浏览量 回答数 1

回答

配置你的 csh/tcsh 选择 csh/tcsh 和许多刚从 Linux 转到 BSD 的人不同,我并没有装完 BSD 就顺手安装 bash,因为之前除了打命令,我没有用到额外的功能,bash 也好,csh 也罢,在我眼里都是当做 shell 来用。但是渐渐地,我发现 csh 真的挺好用,它小巧、简单、开放,不需要额外依赖。可能有人要拿脚本能力来作对比,比如bash脚本支持函数,csh不支持等。对我来说,其实我从未像模像样地写过一个脚本,我的工作是 C++ 程序员。从我的角度来看,论脚本能力,其实bash、csh、zsh都比不上Python,论兼容性,bash、csh、zsh都比不上sh,论强大,bash、csh、zsh都比不上C/C++,甚至asm。再看易学程度,bash、csh、zsh可能还是要输给Python。综上,脚本能力忽略不计。:-x好了,说了这么多大不敬的话,我们开始切入正题。8-) 配置文件 全局配置文件 /etc/csh.cshrc个人配置文件 ~/.cshrc或~/.tcshrc为了方便,建议修改全局性的配置文件,这样每个账号都可以享受便利。按键绑定 通常,我们不设置按键绑定也能很好地工作,但是对于远程登录,可能需要一些额外的配置。比如,为了避免putty登录后,Home、End、Delete等变成~,你需要如下配置: bindkey '\e[1~' beginning-of-line # Home bindkey '\e[3~' delete-char # Delete bindkey '\e[4~' end-of-line # End bindkey "^W" backward-delete-word # Delete bindkey -k up history-search-backward # PageUp bindkey -k down history-search-forward # PageDown 提示符 设置一个漂亮使用的的提示符可以让工作变得更愉快高效。 以下是一个合理的配置方案: if ( $?prompt ) then #如果$prompt变量尚未设置,则做如下设置 if ( "$uid" == "0" ) then #判断用户的uid set prompt = "%U%n%u@%m [%l] %B%~%b # " #对于root,我们显示“#”号 else set prompt = "%U%n%u@%m [%l] %B%~%b % " #对于普通用户,显示“%”号。 endif endif Konsole中的效果如下: prompt2_img 一种彩色的配置方案如下: set cr = "%{\e[31m%}" #开始红色 set cg = "%{\e[32m%}" #开始绿色 set c0 = "%{\e[0m%}" #恢复为默认色彩 # Set some variables for interactive shells if ( $?prompt ) then if ( "$uid" == "0" ) then set prompt = "%B%U%n%u@%m.$cr%l$c0%b %c2 %B%#%b " else set prompt = "%B%U%n%u@%m.$cg%l$c0%b %c2 %B%%%b " endif endif Konsole中的效果如下: prompt3.png 颜色代码: 1 for brighter colors 4 for underlined text 5 for flashing text 30 for black foreground 31 for red foreground 32 for green foreground 33 for yellow (or brown) foreground 34 for blue foreground 35 for purple foreground 36 for cyan foreground 37 for white (or gray) foreground 40 for black background 41 for red background 42 for green background 43 for yellow (or brown) background 44 for blue background 45 for purple background 46 for cyan background 47 for white (or gray) background 查看更多参数,及其作用: man tcsh #查看man手册 /%/ #搜索到“%/”开始的地方 环境变量等 你在抱怨 FreeBSD下的 ls 没有显示颜色, grep 出来的东西没有高亮吗? 那么你需要如下的配置: 让 ls 鲜艳些 setenv LSCOLORS ExGxFxdxCxegedabagExExsetenv CLICOLOR yes 让 grep 匹配到的字符高亮 setenv GREP_OPTIONS --color=auto对于在KDE下使用fcitx的人,需要如下三行设置,其实就是fcitx安装完后所提示的内容,如果你够细心的话。setenv XMODIFIERS @im=fcitxsetenv QT_IM_MODULE ximsetenv GTK_IM_MODULE xim嗯, ls 有颜色了,但是等等,为何 tab 不能补全?你需要如下配置:set autolist若要在补全时也将历史记录(即命令history的输出)纳入参考范围,可以添加如下配置:set autoexpand而对与命令history本身,则提供了以下两项配置:set history = 100set savehist = 10第一项设置了历史记录暂存条数,默认为100;第二项设置了退出当前Shell时会将多少条最新的暂存条数写入~/.history,其取值显然不能大于set history。需要说明的是,在savehist的设置中,还可以使用类似set savehist = (10 merge)的写法;这里merge表示保存时合并历史记录中的相同命令,合并后的序列号、时间则与其中最新者相同。如果命令输错了,让csh/tcsh 为你纠正:set correct = cmd为了在命令行启动某个游戏,或者kde程序,例如dolphin、kcalc,你需要加两个路径到$path中去:/usr/games /usr/local/kde4/bin/ set path = (/sbin /bin /usr/sbin /usr/local/bin /usr/games /usr/local/sbin /usr/bin $HOME/bin /usr/local/kde4/bin/) 黑魔法防御术 重定向防御 重定向很强大,我们有时候会运行诸如“date » b.txt”,“ls -l > files.txt”等命令。然而如果一不小心,把“»”输成“>”会造成什么后果呢?为此,tcsh提供了noclobber这个选项:set noclobber有了它,悲剧就不会发生。如果“>”的目标文件已存在,tcsh会拒绝重定向。覆盖防御 是否遇到过“mv a b”,从而把有用的b文件覆盖掉了?为此,我们要让mv和cp的行为更谨慎:alias mv 'mv -i'alias cp 'cp -i'如果目标文件已存在,mv和cp会拒绝操作,除非使用参数“-f”。误删防御 rm这个命令自从诞生起,就一直是个危险的操作。我们可以让rm更温和:alias rm 'rm -i'这样rm之前,会要求再次确认。一切皆alias 前面,我们在黑魔法防御术中已经初步见识了alias。alias不仅可以避免危险操作,还可以简化命令,自创命令。除非极短,否则良好的alias命名,应当以某个统一的单词或字母开头,例如下面即将展示的reload/edit系列、update系列、show系列等。先展示最基本的alias,并逐条解释。alias .. 'cd ..' #两点即可回到上级目录alias - 'cd -' #一杠返回上次的目录alias q 'exit' #退出登录alias rm 'rm -i' #误删防御alias del 'rm -r' #删除整个目录alias mv 'mv -i' #覆盖防御alias cp 'cp -i' #覆盖防御alias ls 'ls -I' #root状态下,默认不显示隐藏文件(.*)。BSD的ls很特殊,root默认显示所有文件。alias la 'ls -a' #显示所有文件alias ll 'ls -h -l' #显示文件权限和大小(以合理的单位)alias lr 'ls -R' #递归显示目录alias dh 'df -h -a -T' #以合适的单位显示所有磁盘的剩余空间,以及文件系统类型(如ufs、devfs、procfs)。alias ds 'du -sh' #以合适的单位显示查看每个文件/文件夹的大小find/wc系列。快速查找当前目录下的所有c/cxx/python源码文件。结合wc可以统计行数。alias find-c 'find . -name ".h" -o -name ".c"'alias find-x 'find . -name ".h" -o -name ".hpp" -o -name ".cpp" -o -name ".cxx"'alias find-py 'find . -name ".py"'alias wc-c 'find . -name ".h" -o -name ".c" | xargs wc | sort -k 4'alias wc-x 'find . -name ".h" -o -name ".hpp" -o -name ".cpp" -o -name ".cxx" | xargs wc | sort -k 4'alias wc-py 'find . -name ".py" | xargs wc | sort -k 4'reload/edit系列。实现快速修改,载入配置文件。alias reload-rc.conf 'sh /etc/rc'alias reload-cshrc 'unalias * && source /etc/csh.cshrc'alias edit-xorg.conf 'vim /etc/xorg.conf'alias edit-csh.cshrc 'vim /etc/csh.cshrc'alias edit-make.conf 'vim /etc/make.conf'alias edit-kern.conf 'vim /etc/kernconf/thinkpad'alias edit-rc.conf 'vim /etc/rc.conf'alias edit-vimrc 'vim /usr/local/share/vim/vimrc'set系列。快速设置locale。 alias setlocale-zhcn 'setenv LC_ALL zh_CN.UTF-8 && setenv LANG zh_CN.UTF-8'alias setlocale-c 'setenv LC_ALL C'startx专用。保持命令行下为英文locale(避免date等命令出现乱码),而让x环境为中文,适合手动startx而不是kdm的人。 alias sx 'setenv LC_ALL zh_CN.UTF-8 && setenv LANG zh_CN.UTF-8 && startx && setenv LC_ALL C'make系列。快速编译kernel/world。 alias make-world 'cd /usr/src && make buildworld && cd -'alias make-kernel 'cd /usr/src && make kernel KERNCONF=thinkpad && cd -'alias make-installworld 'cd /usr/src && make installworld && make delete-old && cd -'show系列。查看状态或某些信息。 alias show-ifstat 'systat -ifstat' #查看网络接口的数据流量alias show-geom 'gstat' #查看I/O状态alias show-thermal 'sysctl dev.acpi_ibm.0.thermal' #查看ThinkPad笔记本的各部分温度alias show-cpufreq 'sysctl dev.cpu.0.freq' #查看当前cpu频率alias show-cpulevels 'sysctl dev.cpu.0.freq_levels' #查看可用的cpu频率alias show-battery 'sysctl hw.acpi.battery.life && sysctl hw.acpi.battery.time' #查看电力alias show-smartctl 'smartctl -a /dev/ad4' #需要安装smartmontools,查看磁盘smart参数alias show-alldep 'make all-depends-list' #需要在ports的安装目录下执行,显示所有依赖alias show-dep 'portmaster --show-work ./ | sort' #同上,且需要安装portmaster,只显示尚未安装的依赖alias show-ver 'pkg_version -v' #查看是否有软件可更新update系列。顾名思义,更新嘛。alias update-locatedb '/usr/libexec/locate.updatedb' #更新locate数据库alias update-kernsrc 'csup -L 2 /etc/supfiles/stable-supfile' #同步kernel treealias update-ports 'portsnap fetch update' #同步ports treealias update-apps 'portmaster -a --force-config' #需要安装portmaster,更新所有软件,提示配置选项杂项,均需要安装第三方软件才能用。 alias lt 'tree -N -C' #需要安装tree。树状显示目录,-N可以保证中文显示,-C使用彩色alias l3 'tree -N -C -L 3' #目录最多递归三级alias l4 'tree -N -C -L 4' #四级alias l5 'tree -N -C -L 5' #五级alias l6 'tree -N -C -L 6' #六级alias v 'vim' #不用说,我懒alias m 'mocp' #控制台下的cs架构播放器alias getdir 'wget -c -r -np -k' #递归下载目录alias ssh-home 'ssh raphael.vicp.cc -l root' #用root账号登录,结合key可以免输密码alias ftp-home 'ftp ftp://syh:syh@raphael.vicp.cc' #BSD自带的ftp,免输账号密码。主机已被电信和工信部和谐,勿再试alias lft-phome 'lftp raphael.vicp.cc -u syh,syh' #lftp的免输账号密码。alias scons 'scons -Q -j 4' #构建工具,默认4个线程进行alias valgrind-checkmem 'valgrind --tool=memcheck --leak-check=full' #检查内存泄漏

小旋风柴进 2019-12-02 02:35:10 0 浏览量 回答数 0

回答

没人理我吗? ###### 看这个 http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide ######你能说下吗?###### 以下只是我的Wsgi部分的配置(httpd.conf): LoadModule wsgi_module modules/mod_wsgi.so WSGIScriptAlias /wsgi /django-app/SimpleCRM/SimpleCRM/wsgi.py WSGIPythonPath /django-app/SimpleCRM AddType text/html .py <Directory /django-app/SimpleCRM/SimpleCRM>      AllowOverride All      Options ExecCGI      Order deny,allow      Allow from All </Directory> 我用的是XAMPP。 ######回复 @dreamhack : 你在Command Prompt下非Python目录里可以跑Python的Code 吗?######嗯,谢谢,我的还是不行,除了这段配置不需要设置别的了?python解释器怎么办?我弄好几天了,实在解决不了!你安装django了,我只是搭建环境,没框架,能跑py web就行!###### 在System Property->Environment Variables的Sytem variables 或者User variables 中选择Path,选Edit,加上你的路径。 ###### 设置环境变量,XP看看这个:http://best-windows.vlaurie.com/environment-variables.html 和这个:http://www.computerhope.com/issues/ch000549.htm Win 7, 看这个:http://geekswithblogs.net/renso/archive/2009/10/21/how-to-set-the-windows-path-in-windows-7.aspx ######回复 @dreamhack : 是py的路径。######嗯,啥路径?python安装的路径?还是网站工作的路径呢?######安装两个版本没有问题,在路径中选一个就是了。######回复 @dreamhack : 关键是每一个人的机器的环境并不相同,你不可能完全按照别人写的做。你要能够理解每一步本身的含义才好。######很不好意思告诉您我还是没成功,简直见鬼了!你能写个博客仔细说下吗?我相信很多人都需要这个###### 下面这一步你做了吗? 对于Windows 2000、XP、2003,点击控制面板->系统->高级->环境变量。在“系统变量”表单中点击叫做PATH的变量,然后编辑这个变量,把;C:\Python26加到它的结尾。当然,是Python所在的正确目录名。 ######啊!哈哈哈哈,谢谢您了,我配置好了!去掉了WSGIScriptAlias WSGIPythonPath这俩个,这个玩意弄了我几天了,前俩天搞得我都想回去用php了!真心谢谢######嗯,真的谢谢了,我也是这样弄的!WSGIScriptAlias /wsgi /django-app/SimpleCRM/SimpleCRM/wsgi.py WSGIPythonPath /django-app/SimpleCRM 你能解释下怎么改吗?我没安装django!我再好好整理下!######你应该说说有什么错误信息。######你可不可以把py, Apache和你的测试代码都放在一个硬盘符上试试看。感觉还是路径设置的问题。不要分开放置在C:,D:或者是E:上。######嗯,弄好了,谢谢,等下我写个博客去,免得向我一样的新手这样纠结!######Itenllij IDEA  可以用用######你在说什麽? ========================= title = Tomcat安装后配置问题 describe =     Tomcat安装后配置的过程中,配置好虚拟路径后在浏览器中输入“http://localhost/mldn/”,结果无法显示该网页。且上一步成功显示过的服务器首页也无法显示了。    诚问专业人士如何解决。 content = 是不是 http://locahost:8080######tomcat默认安装好的端口号是8080,######没有配置端口!###### 贴出server.xml看看哦 ###### http://localhost:8080/mldn/ 试试 ######检查本地是否启动成功 http://localhost:8080  是否可以正常访问,###### 服务器安装成功了,但服务器的虚拟目录配置没成功,输入http://localhost:8080/mldn/后的显示是下图,有尝试过把conf/web.xml文件中的listing下面的false改为true。 还请各位帮忙看看如何解决,谢谢! ######在服务中启动。Apache tomcat 6服务。你之前有没有配置过tomcat系统环境变量。如果有。这个是不会成功的。要修改一下到相应的路径~######差不多的问题哎,同样是进不去tomcat的那个小猫的画面,但是我在Eclipse中启动tomcat的话还是可以调用的,之前能用,我就改了下services.msc中的那个服务,具体啥原因我也不知道了

montos 2020-05-29 22:44:26 0 浏览量 回答数 0

回答

这里讨论使用Python解压如下五种压缩文件: .gz .tar .tgz .zip .rar 简介gz: 即gzip,通常只能压缩一个文件。与tar结合起来就可以实现先打包,再压缩。 tar: linux系统下的打包工具,只打包,不压缩 tgz:即tar.gz。先用tar打包,然后再用gz压缩得到的文件 zip: 不同于gzip,虽然使用相似的算法,可以打包压缩多个文件,不过分别压缩文件,压缩率低于tar。 rar:打包压缩文件,最初用于DOS,基于window操作系统。压缩率比zip高,但速度慢,随机访问的速度也慢。 关于zip于rar之间的各种比较,可见: http://www.comicer.com/stronghorse/water/software/ziprar.htm gz由于gz一般只压缩一个文件,所有常与其他打包工具一起工作。比如可以先用tar打包为XXX.tar,然后在压缩为XXX.tar.gz 解压gz,其实就是读出其中的单一文件,Python方法如下: [python] view plain copyimport gzip import os def un_gz(file_name): """ungz zip file""" f_name = file_name.replace(".gz", "") #获取文件的名称,去掉 g_file = gzip.GzipFile(file_name) #创建gzip对象 open(f_name, "w+").write(g_file.read()) #gzip对象用read()打开后,写入open()建立的文件中。 g_file.close() #关闭gzip对象 tarXXX.tar.gz解压后得到XXX.tar,还要进一步解压出来。 *注:tgz与tar.gz是相同的格式,老版本DOS扩展名最多三个字符,故用tgz表示。 由于这里有多个文件,我们先读取所有文件名,然后解压,如下: [python] view plain copyimport tarfile def un_tar(file_name): untar zip file""" tar = tarfile.open(file_name) names = tar.getnames() if os.path.isdir(file_name + "_files"): pass else: os.mkdir(file_name + "_files") #由于解压后是许多文件,预先建立同名文件夹 for name in names: tar.extract(name, file_name + "_files/") tar.close() *注:tgz文件与tar文件相同的解压方法。 zip与tar类似,先读取多个文件名,然后解压,如下: [python] view plain copyimport zipfile def un_zip(file_name): """unzip zip file""" zip_file = zipfile.ZipFile(file_name) if os.path.isdir(file_name + "_files"): pass else: os.mkdir(file_name + "_files") for names in zip_file.namelist(): zip_file.extract(names,file_name + "_files/") zip_file.close() rar因为rar通常为window下使用,需要额外的Python包rarfile。 可用地址: http://sourceforge.net/projects/rarfile.berlios/files/rarfile-2.4.tar.gz/download 解压到Python安装目录的/Scripts/目录下,在当前窗口打开命令行, 输入Python setup.py install 安装完成。 [python] view plain copyimport rarfile import os def un_rar(file_name): """unrar zip file""" rar = rarfile.RarFile(file_name) if os.path.isdir(file_name + "_files"): pass else: os.mkdir(file_name + "_files") os.chdir(file_name + "_files"): rar.extractall() rar.close() tar打包在写打包代码的过程中,使用tar.add()增加文件时,会把文件本身的路径也加进去,加上arcname就能根据自己的命名规则将文件加入tar包打包代码: !/usr/bin/env /usr/local/bin/python # encoding: utf-8 import tarfile import os import time start = time.time() tar=tarfile.open('/path/to/your.tar,'w') for root,dir,files in os.walk('/path/to/dir/'): for file in files: fullpath=os.path.join(root,file) tar.add(fullpath,arcname=file) tar.close() print time.time()-start 在打包的过程中可以设置压缩规则,如想要以gz压缩的格式打包tar=tarfile.open('/path/to/your.tar.gz','w:gz')其他格式如下表:tarfile.open的mode有很多种:mode action'r' or 'r:*' Open for reading with transparent compression (recommended).'r:' Open for reading exclusively without compression.'r:gz' Open for reading with gzip compression.'r:bz2' Open for reading with bzip2 compression.'a' or 'a:' Open for appending with no compression. The file is created if it does not exist.'w' or 'w:' Open for uncompressed writing.'w:gz' Open for gzip compressed writing.'w:bz2' Open for bzip2 compressed writing. tar解包tar解包也可以根据不同压缩格式来解压。 !/usr/bin/env /usr/local/bin/python # encoding: utf-8 import tarfile import time start = time.time() t = tarfile.open("/path/to/your.tar", "r:") t.extractall(path = '/path/to/extractdir/') t.close() print time.time()-start 上面的代码是解压所有的,也可以挨个起做不同的处理,但要如果tar包内文件过多,小心内存哦~tar = tarfile.open(filename, 'r:gz') for tar_info in tar: file = tar.extractfile(tar_info) do_something_with(file)

xuning715 2019-12-02 01:10:34 0 浏览量 回答数 0

问题

【精品问答】python技术1000问(1)

问问小秘 2019-12-01 21:57:48 456417 浏览量 回答数 22

问题

厦门求职,应届毕业生求个java方向或者安卓的岗位~~? 400 报错

爱吃鱼的程序员 2020-06-02 17:06:34 0 浏览量 回答数 1

问题

iredis 一款python语言撰写支持自动补全、语法高亮、命令提示等的 Redis 命令行客户端

huc_逆天 2020-05-21 17:19:52 23 浏览量 回答数 1

问题

wttr.in 一个 Python 实现的命令行查看天气工具

huc_逆天 2020-05-21 19:12:17 19 浏览量 回答数 1
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 企业建站模板