在问这个问题时,我意识到我对原始字符串知之甚少.对于那些自称是Django训练师的人来说,这很糟糕.
我知道编码是什么,而且我知道u''自从我得到什么是Unicode以来我们独自做了什么.
但到底r''做了什么呢?它会产生什么样的字符串?
And above all, what the heck does ur'' do?
Finally, is there any reliable way to go back from a Unicode string to a simple raw string?
Ah, and by the way, if your system and your text editor charset are set to UTF-8, does u'' actually do anything?
我有脚本调用其他脚本文件,但我需要获取当前在该进程中运行的文件的文件路径.
例如,假设我有三个文件.使用execfile:
script_1.py电话script_2.py.script_2.py打电话script_3.py.我怎样才能获得的文件名和路径script_3.py,从内部代码script_3.py,而无需从传递这些信息作为参数script_2.py?
(执行os.getcwd()返回原始起始脚本的文件路径而不是当前文件的.)
我想看看在python中确定当前脚本目录的最佳方法是什么?
我发现,由于调用python代码的方法很多,很难找到一个好的解决方案.
这是一些问题:
__file__如果脚本执行时未定义exec,execfile__module__ 仅在模块中定义用例:
./myfile.pypython myfile.py./somedir/myfile.pypython somedir/myfile.pyexecfile('myfile.py') (来自另一个脚本,可以位于另一个目录中,并且可以有另一个当前目录.我知道没有完美的解决方案,但我正在寻找解决大多数情况的最佳方法.
最常用的方法是os.path.dirname(os.path.abspath(__file__)),如果你从另一个脚本执行脚本,这实际上不起作用exec().
任何使用当前目录的解决方案都将失败,根据调用脚本的方式或者可以在运行的脚本中更改它,可能会有所不同.
我在Windows 7上使用Python 3.2.当我打开Python shell时,我如何知道当前目录是什么以及如何将其更改为我的模块所在的另一个目录?
在我的路上,我有一点问题.
这个代码示例创建了一些名为"〜/ some_dir"的目录,并且不明白我想在我的主目录中创建some_dir.
my_dir = "~/some_dir"
if not os.path.exists(my_dir):
os.makedirs(my_dir)
Run Code Online (Sandbox Code Playgroud)
请注意,这是基于Linux的系统.
例如,表示Windows目录的最佳方法是什么"C:\meshes\as"?我一直在尝试修改脚本,但它永远不会起作用,因为我似乎无法正确获取目录,我假设因为'\'扮演转义角色?
我有一个包含十个文件的文件夹,我想循环播放.当我打印出文件的名称时,我的代码工作正常:
import os
indir = '/home/des/test'
for root, dirs, filenames in os.walk(indir):
for f in filenames:
print(f)
Run Code Online (Sandbox Code Playgroud)
哪个印刷品:
1
2
3
4
5
6
7
8
9
10
Run Code Online (Sandbox Code Playgroud)
但是如果我尝试在循环中打开文件,我会收到IO错误:
import os
indir = '/home/des/test'
for root, dirs, filenames in os.walk(indir):
for f in filenames:
log = open(f, 'r')
Traceback (most recent call last):
File "/home/des/my_python_progs/loop_over_dir.py", line 6, in <module>
log = open(f, 'r')
IOError: [Errno 2] No such file or directory: '1'
>>>
Run Code Online (Sandbox Code Playgroud)
我是否需要在循环内部传递文件的完整路径open()?
我试图打开一个CSV文件但由于某种原因python无法找到它.
这是我的代码(它只是一个简单的代码,但我无法解决问题):
import csv
with open('address.csv','r') as f:
reader = csv.reader(f)
for row in reader:
print row
Run Code Online (Sandbox Code Playgroud) 假设我有一个python项目,结构如下:
project
/data
test.csv
/package
__init__.py
module.py
main.py
Run Code Online (Sandbox Code Playgroud)
__init__.py:
from .module import test
Run Code Online (Sandbox Code Playgroud)
module.py:
import csv
with open("..data/test.csv") as f:
test = [line for line in csv.reader(f)]
Run Code Online (Sandbox Code Playgroud)
main.py:
import package
print(package.test)
Run Code Online (Sandbox Code Playgroud)
当我运行时,main.py我收到以下错误:
C:\Users\Patrick\Desktop\project>python main.py
Traceback (most recent call last):
File "main.py", line 1, in <module>
import package
File "C:\Users\Patrick\Desktop\project\package\__init__.py", line 1, in <module>
from .module import test
File "C:\Users\Patrick\Desktop\project\package\module.py", line 3, in <module>
with open("../data/test.csv") as f:
FileNotFoundError: [Errno 2] No such file or directory: …Run Code Online (Sandbox Code Playgroud) python ×10
file ×2
path ×2
python-3.x ×2
dirname ×1
file-io ×1
find ×1
io ×1
python-2.x ×1
python-3.2 ×1
pythonpath ×1
rawstring ×1
scripting ×1
unicode ×1
windows ×1