这两者之间有什么不同吗?我什么时候应该使用另一个?其中一个被弃用了吗?它们似乎具有完全相同的功能.
>>> os.getenv('TERM')
'xterm'
>>> os.environ.get('TERM')
'xterm'
>>> os.getenv('FOOBAR', "not found") == "not found"
True
>>> os.environ.get('FOOBAR', "not found") == "not found"
True
Run Code Online (Sandbox Code Playgroud) 我知道我可以使用它来获取完整的文件路径
os.path.dirname(os.path.realpath(__file__))
Run Code Online (Sandbox Code Playgroud)
但是我只想要文件夹的名称,我的脚本就在.如果我有my_script.py并且它位于
/home/user/test/my_script.py
Run Code Online (Sandbox Code Playgroud)
我想回"测试"我怎么能这样做?
谢谢
从我的ipython shell中,我在os.environ中看到了一个方法setdefault,但没有记录.http://docs.python.org/library/os.html#os.environ.它是否记录在其他地方?
def setdefault(self, key, failobj=None):
if key not in self:
self[key] = failobj
return self[key]
Run Code Online (Sandbox Code Playgroud)
我可以使用此功能或为这些线写一个包装器吗?
我想构建一个程序,它使用一些基本代码来读取文件夹并告诉我文件夹中有多少文件.我目前是这样做的:
import os
folders = ['Y:\\path1', 'Y:\\path2', 'Y:\\path3']
for stuff in folders:
for root, dirs, files in os.walk(stuff, topdown=True):
print("there are", len(files), "files in", root)
Run Code Online (Sandbox Code Playgroud)
这很有效,直到"main"文件夹中有多个文件夹,因为文件夹/文件管理不佳,它可能会返回一个长的垃圾文件列表.所以我最多只想进入第二级.例:
Main Folder
---file_i_want
---file_i_want
---Sub_Folder
------file_i_want <--*
------file_i want <--*
------Sub_Folder_2
---------file_i_dont_want
---------file_i_dont_want
Run Code Online (Sandbox Code Playgroud)
我知道如何去只有第一层用break,用del dirs[:]取自这篇文章和也是这个职位.
import os
import pandas as pd
folders = ['Y:\\path1', 'Y:\\path2', 'Y:\\path3']
for stuff in folders:
for root, dirs, files in os.walk(stuff, topdown=True):
print("there are", len(files), "files in", root)
del dirs[:] # …Run Code Online (Sandbox Code Playgroud) 我正在为下载文件夹编写排序器。我收到此错误,我尝试更改权限:
chmod: Unable to change file mode on Users: Operation not permitted
import os
from_dir = os.path.dirname('/Users/user/Downloads/')
working_dir = os.walk(from_dir)
to_dir = os.path.dirname('/User/user/Downloads/New Folder/')
def move(folder):
for roots, dirs, files in folder:
for file in files:
src_folder = from_dir + '/' + file
to_folder = to_dir + '/' + file
if not os.path.exists(to_dir):
os.makedirs(to_dir)
os.rename(src_folder, to_folder)
move(working_dir)
Run Code Online (Sandbox Code Playgroud)
也许还有另一种方法可以在不触及根文件夹的情况下编写此代码?
完整错误:
Traceback (most recent call last):
File "/Users/beknazarnurbek/Documents/PycharmProjects/Move Files/move.py", line 19, in <module>
move(working_dir)
File "/Users/beknazarnurbek/Documents/PycharmProjects/Move Files/move.py", line 14, in …Run Code Online (Sandbox Code Playgroud) 既os和multiprocessing模块定义一个cpu_count函数。
os.cpu_count 记录如下:
返回系统中的 CPU 数量。如果未确定,则返回 None。
andmultiprocessing.cpu_count的文档说:
返回系统中的 CPU 数量。可能会引发 NotImplementedError。另见 os.cpu_count()
在我的机器上,它们都返回相同的结果:
>>> import os
>>> import multiprocessing as mp
>>> os.cpu_count()
8
>>> mp.cpu_count()
8
Run Code Online (Sandbox Code Playgroud)
我原以为这multiprocessing.cpu_count只是对 的引用os.cpu_count,但事实并非如此:
>>> os.cpu_count is mp.cpu_count
False
Run Code Online (Sandbox Code Playgroud)
那么它们之间有什么区别呢?我能保证他们总是返回相同的结果吗?此外,如果我想指定要为其创建的多个进程multiprocessing.Pool,我应该使用osormultiprocessing的函数吗?
在 python 中,有没有办法从特定的 .env 文件中检索 env 变量的值?例如,我有多个 .env 文件,如下所示:
.env.a .env.a ...
我在 .env.b 中有一个名为 INDEX=4 的变量。
我尝试通过执行以下操作来接收 INDEX 的值:
import os
os.getenv('INDEX')
Run Code Online (Sandbox Code Playgroud)
但这个值返回None。
有什么建议么?
情况:我需要使用最 Pythonic 的方式找到任何操作系统的顶级 [root] 目录,而不需要系统调用。
问题:虽然我可以使用诸如 之类的东西检查操作系统if "Windows" in platform.system(),但我不能太确定驱动器号是否总是C:\或/(后者不太可能)。我也无法确定是否只有 Windows 和 *NIX 需要编目。
问题:有没有办法获取任何操作系统的顶级目录?最好使用该os模块,因为我已经在使用它了。
我想关闭一些使用 os.startfile() 打开的文件,例如 .txt、.csv、.xlsx。
我知道这个问题之前问过,但我没有找到任何有用的脚本。
我使用的是windows 10环境
我刚刚在 python 中实现了一个 Linux 命令外壳,仅使用os库的低级系统调用,诸如此类fork()。
我想知道如何实现一个键侦听器,该侦听器将侦听键 (UP|DOWN) 以滚动浏览我的 shell 的历史记录。
我想在不使用任何花哨的库的情况下做到这一点,但我也希望这不是超级复杂的事情。到目前为止,我的代码只有大约 100 行代码,我不想为了获得一个简单的功能而创建一个怪物:D
我对这个问题的想法是,应该可以创建一个带有某种循环的子进程,它将侦听 up^[[A和 down ^[[B,按键,然后以某种方式将文本放入我的输入字段,就像一个普通终端。
到目前为止,我最感兴趣的是 key-listener 的可能性。但接下来我可能必须弄清楚如何将该文本输入到输入字段中。关于这一点,我想我可能必须使用提供的一些stdin功能sys。
我只对让它在 Linux 上运行感兴趣,并希望继续使用低级系统调用,最好不是为我处理所有事情的 Python 库。这是一个学习练习。
python ×10
python-os ×10
file ×2
chmod ×1
cpu ×1
dictionary ×1
directory ×1
getcwd ×1
keypress ×1
linux ×1
low-level ×1
macos ×1
python-2.7 ×1
python-3.x ×1
subdirectory ×1