我有一个以数字开头的字符串(从0到9)我知道我可以"或"使用startswith()测试10个案例但是可能有一个更整洁的解决方案
所以不要写作
if (string.startswith('0') || string.startswith('2') ||
string.startswith('3') || string.startswith('4') ||
string.startswith('5') || string.startswith('6') ||
string.startswith('7') || string.startswith('8') ||
string.startswith('9')):
#do something
Run Code Online (Sandbox Code Playgroud)
有更聪明/更有效的方式吗?
我可以使用单独的文件来完成此操作,但如何在文件的开头添加一行?
f=open('log.txt','a')
f.seek(0) #get to the first position
f.write("text")
f.close()
Run Code Online (Sandbox Code Playgroud)
由于文件以追加模式打开,因此从文件末尾开始写入.
我正在学习Ansible.我有一个清理资源的剧本,我希望剧本忽略每一个错误并一直持续到最后,如果有错误则最后失败.
我可以忽略错误
ignore_errors: yes
Run Code Online (Sandbox Code Playgroud)
如果这是一项任务,我可以做一些事情(来自ansible错误捕获)
- name: this command prints FAILED when it fails
command: /usr/bin/example-command -x -y -z
register: command_result
ignore_errors: True
- name: fail the play if the previous command did not succeed
fail: msg="the command failed"
when: "'FAILED' in command_result.stderr"
Run Code Online (Sandbox Code Playgroud)
我怎么会在最后失败?我有几个任务,我的"何时"条件是什么?
我可以在python中做到这一点,但我想知道我是否可以在Linux中执行此操作
我有这样的文件
name1 text text 123432re text
name2 text text 12344qp text
name3 text text 134234ts text
Run Code Online (Sandbox Code Playgroud)
我希望通过特定的用户名在第3列中找到所有不同类型的值,例如名称1.
grep name1 filename给了我所有的行,但必须有一些方法来列出所有不同类型的值?(我不想为同一用户名显示重复值)
要按行迭代文件,可以做 -
for line in f:
Run Code Online (Sandbox Code Playgroud)
(其中f是文件迭代器).
我想用逗号分隔的块来迭代文件,而不是用换行符分隔的块.我可以读取所有行,然后用逗号分割字符串,但是pythonic的方法是什么呢?
这是一个来自 LeetCode的Find All Numbers Disappeared in an Array问题:
给定一个整数数组,其中
1 ? a[i] ? n (n = size of array),某些元素出现两次,而其他元素出现一次。查找所有
[1, n]未出现在此数组中的inclusive元素。你能在没有额外空间和 O(n) 运行时完成吗?您可以假设返回的列表不算作额外空间。
例子:
Run Code Online (Sandbox Code Playgroud)Input: [4,3,2,7,8,2,3,1] Output: [5,6]
我的代码如下 - 我认为它是 O(N) 但面试官不同意
def findDisappearedNumbers(self, nums: List[int]) -> List[int]:
results_list=[]
for i in range(1,len(nums)+1):
if i not in nums:
results_list.append(i)
return results_list
Run Code Online (Sandbox Code Playgroud) 好的,我知道这是无效的
char char_A = 'A';
const char * myPtr = &char_A;
*myPtr = 'J'; // error - can't change value of *myP
Run Code Online (Sandbox Code Playgroud)
[因为我们声明了一个指向常量字符的指针]
为什么这个有效?
const char *linuxDistro[6]={ "Debian", "Ubuntu", "OpenSuse", "Fedora", "Linux Mint", "Mandriva"};
for ( int i=0; i < 6; i++)
cout << *(linuxDistro+i)<< endl;
*linuxDistro="WhyCanIchangeThis";// should result in an error but doesnt ?
for ( int i=0; i < 6; i++)
cout << *(linuxDistro+i)<< endl;
Run Code Online (Sandbox Code Playgroud)
谢谢你的期待!
我想移动很多文件.这些文件的路径存储在列表中.我想保留整个目录结构,但想将它们移动到另一个文件夹.
例如,文件是D:\ test\test1\test1.txt D:\ test\test1\test2.txt
我想将它们从D:\移到C:\并保留目录结构.我应该怎么做呢?
这是我的代码,它不起作用
import os, fnmatch
import shutil
f=open('test_logs.txt','r') #logs where filenames are stored with filenames as first entry
for line in f:
filename=line.split()
output_file="C:" + filename[0].lstrip("D:")
shutil.move(filename[0],output_file)
Run Code Online (Sandbox Code Playgroud)
我读文件名很好,我可以很好地生成目标文件名但是当我运行它时,它给我一个错误,说"没有这样的文件或目录"(并给出输出文件名的路径).
我目前使用的是默认工作区,我的文件夹结构是这样的 -
dev
??? app
? ??? main.tf
??? mysql
? ??? main.tf
??? vpc
??? main.tf
Run Code Online (Sandbox Code Playgroud)
我创建了一个 s3 后端,它适用于单个文件夹
terraform {
backend "s3" {
bucket = "mybucket"
key = "global/s3/mykey/terraform.tfstate"
region = "us-east-1"
dynamodb_table = "terraform-state-wellness-nonprod"
encrypt = true
}
}
Run Code Online (Sandbox Code Playgroud)
我正在努力研究如何在所有文件夹中包含这个后端配置,就像我想在应用程序、mysql 和 vpc(Dynamodb 的差异键)中使用相同的后端 s3 存储桶,但是虽然这在一个文件夹中有效,但在第二个文件夹中文件夹 terraform 想要删除 S3 存储桶和 Dynamodb。
我在接受采访时被问到这个问题 - "功能使用了多少内存?".所以我试着回答说你可以把所有数据变量所占用的所有内存,它实例化的数据结构加起来 - 例如加长4个字节,1个用于char,4个用于int,32位用于32位指针系统,并添加动态分配的任何输入.面试官对我的回答不满意.
我正在学习C++,并会欣赏任何见解.