GVKun编程网logo

Oracle full EXPORT with exclude 不使用 par 文件(oracle12c不使用cdb模式)

27

以上就是给各位分享用于Jekyll页面生成器的json文件名称,其中也会对而不仅仅是其字段的键?进行解释,同时本文还将给你拓展html–jekyll中的Jekyll代码、Jekyll1.0发布,Rub

以上就是给各位分享用于 Jekyll 页面生成器的 json 文件名称,其中也会对而不仅仅是其字段的键?进行解释,同时本文还将给你拓展html – jekyll中的Jekyll代码、Jekyll 1.0 发布,Ruby 的静态网站生成器、Jekyll 2.0 发布,Ruby 的静态网站生成器、Jekyll 2.1 发布,Ruby 的静态网站生成器等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

用于 Jekyll 页面生成器的 json 文件名称(而不仅仅是其字段)的键?(javascript用于搭建页面结构)

用于 Jekyll 页面生成器的 json 文件名称(而不仅仅是其字段)的键?(javascript用于搭建页面结构)

如何解决用于 Jekyll 页面生成器的 json 文件名称(而不仅仅是其字段)的键??

我在 Jekyll 网站上使用 data page generator 来创建基于 JSON 文件文件夹的页面。我希望生成器使用 json 文件的名称作为页面标题,但我无法找出正确的语法来告诉它使用文件名而不是 json 中的字段之一。

我可以通过以下方式访问布局页面之一中的文件名:

for file in site.data.drinks 
file[0]

但是 file[0] 在配置中不起作用(record[0] 或 record 都不起作用):

  - data: drinks
    template: drink
    name: name
    title: name
    dir: drinks
    extension: html

它似乎只是在寻找 json 中字段之一的名称。我一直在使用页面的实际名称“Gin and Tonic”,通常这很好,因为它匹配文件“gin-and-tonic.json”的名称,但在不匹配的情况下,网站休息。

那么告诉它使用实际文件名的正确方法是什么,对于未来,我应该在哪里寻找这种东西。非常感谢任何帮助!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

html – jekyll中的Jekyll代码

html – jekyll中的Jekyll代码

我正在为Jekyll创建一个鸟瞰视图教程,在 Github页面上托管(在我的Jekyll上运行的博客上).所以,我想在那里放一些代码.如果我把以下内容:
{% for post in site.posts %}
{% if post.categories contains '<categoryname>' %}
    <h2>
      <a href="{{ post.url }}">{{ post.title }}</a>
    </h2>
{% endif %}
{% endfor %}

(tabspaces之后的所有行),它不会呈现为代码,而是执行.如何阻止它执行并将其呈现为代码?

解决方法

Jekyll使用的{%…%}语法是 Liquid templating engine的一部分.要转义这些标记,并按字面显示它们,您应该使用 raw tag.

您可能希望将其与代码块的markdown语法结合使用.使用Redcarpet,您可以使用三重反引号语法.如果你将反引号放在原始标签内或反之亦然:

{%raw%}
```
{% for post in site.posts %}
{% if post.categories contains '<categoryname>' %}
    <h2>
      <a href="{{ post.url }}">{{ post.title }}</a>
    </h2>
{% endif %}
{% endfor %}
```
{%endraw%}

Jekyll 1.0 发布,Ruby 的静态网站生成器

Jekyll 1.0 发布,Ruby 的静态网站生成器

jekyll 1.0 发布了,Jekyll 是一个用 Ruby 开发的用来生成静态网站的工具。

新版本值得关注的改进有:

  • 新的子命令:new, build, serve, and import
  • 全新文档 http://jekyllrb.com (thanks to @cobyism)
  • jekyll new 创建一个新的脚手架,可更快速搭建博客
  • 草稿
  • 帖子的新 “excerpt” 特性
  • 时区配置
  • ‘gist’ liquid tag
  • 源码目录保护

详细内容请看 https://github.com/mojombo/jekyll/blob/v1.0.0/History.txt

Jekyll 2.0 发布,Ruby 的静态网站生成器

Jekyll 2.0 发布,Ruby 的静态网站生成器

Jekyll 2.0 发布了,距离 1.0 版本发布有一年的时间,Jekyll 是一个用 Ruby 开发的用来生成静态网站的工具。此版本包括了许多杰出的新特性和 bug 修复。

新版本值得关注的改进有:

  1. Collections

  2. 全新网站模板

  3. 支持原生 Sass & CoffeeScript

  4. 默认为 YAML Front-Matter

  5. 自定义 markdown 处理器

  6. Addition of where and group_by Liquid filters

  7. 使用 Kramdown 替换 Maruku 作为默认的 markdown 转换器

更多内容请看详细的changelog 。

Jekyll 2.1 发布,Ruby 的静态网站生成器

Jekyll 2.1 发布,Ruby 的静态网站生成器

Jekyll 是 Ruby 写的静态 blog 站点生成器。

Jekyll 2.1 发布,此版本更新内容如下:

  • Uses the latest Liquid version (2.6.1) (#2495)

  • Set front-matter defaults for collections (#2419)

  • Set a collection-specific URL template (#2418)

  • pygments.rb 0.6.0! (#2504)

  • .json files in _data (#2369)

  • Allow subdirectories in _data (#2395)

  • Add support for hl_lines in highlight tag (#2532)

  • Post categories now merge with directory, front-matter, and defaults (#2373)

  • New --skip_initial_build flag for jekyll serve (#2477)

  • A bajilion bug fixes and site updates!

更多内容请看完整更新日志。


我们今天的关于用于 Jekyll 页面生成器的 json 文件名称而不仅仅是其字段的键?的分享就到这里,谢谢您的阅读,如果想了解更多关于html – jekyll中的Jekyll代码、Jekyll 1.0 发布,Ruby 的静态网站生成器、Jekyll 2.0 发布,Ruby 的静态网站生成器、Jekyll 2.1 发布,Ruby 的静态网站生成器的相关信息,可以在本站进行搜索。

本文将为您提供关于在 Spring Boot 中使用 @EnableAutoConfiguration 时命名预期错误的详细介绍,同时,我们还将为您提供关于007 SpringBoot 的 @EnableAutoConfiguration 注解、01.springboot入门--启用自动配置注解EnableAutoConfiguration、EnableAutoConfigurationSpring注释如何工作?、EnableAutoConfiguration注解 Spring中@Import注解的作用和使用的实用信息。

本文目录一览:

在 Spring Boot 中使用 @EnableAutoConfiguration 时命名预期错误

在 Spring Boot 中使用 @EnableAutoConfiguration 时命名预期错误

您对 Kotlin 的猜测是正确的。您正在尝试在 Kotlin 中使用 Java 语法。 在 Kotlin 中,第一个注释将如下所示:

@EnableAutoConfiguration(exclude = [MongoAutoConfiguration::class])

如有必要,请查看关于 annotations 的 Kotlin 文档以了解更多详细信息。

007 SpringBoot 的 @EnableAutoConfiguration 注解

007 SpringBoot 的 @EnableAutoConfiguration 注解

一:原理

1.

  首先 Spring Boot 项目中都会如下启动类:

@SpringBootApplication 
public class Application { 
    public static void main(String[] args) { 
        SpringApplication.run(Application.class, args); 
    } 
}     

  其中,@SpringBootApplication 中有三个重要的注解合一。

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
        @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {

  所以,来说说 @EnableAutoConfiguration 的作用。

1 @Target(ElementType.TYPE)
2 @Retention(RetentionPolicy.RUNTIME)
3 @Documented
4 @Import(EnableConfigurationPropertiesImportSelector.class)
5 public @interface EnableConfigurationProperties {

 

2. 作用

  借助 AutoConfigurationImportSelector@EnableAutoConfiguration 可以帮助 SpringBoot 应用将所有符合条件的 @Configuration 配置都加载到当前 SpringBoot 创建并使用的 IoC 容器。

  借助于 Spring 框架原有的一个工具类:SpringFactoriesLoader 的支持,@EnableAutoConfiguration 可以智能的自动配置功效才得以大功告成!

 

3. 进一步说明如何加载

  在 AutoConfigurationImportSelector 类中可以看到通过 SpringFactoriesLoader.loadFactoryNames () 把 spring-boot-autoconfigure.jar/META-INF/spring.factories 中每一个 xxxAutoConfiguration 文件都加载到容器中。

  spring.factories 文件里每一个 xxxAutoConfiguration 文件一般都会有下面的条件注解:

  @ConditionalOnClass : classpath 中存在该类时起效
  @ConditionalOnMissingClass : classpath 中不存在该类时起效
  @ConditionalOnBean : DI 容器中存在该类型 Bean 时起效
  @ConditionalOnMissingBean : DI 容器中不存在该类型 Bean 时起效
  @ConditionalOnSingleCandidate : DI 容器中该类型 Bean 只有一个或 @Primary 的只有一个时起效
  @ConditionalOnExpression : SpEL 表达式结果为 true 时
  @ConditionalOnProperty : 参数设置或者值一致时起效
  @ConditionalOnResource : 指定的文件存在时起效
  @ConditionalOnJndi : 指定的 JNDI 存在时起效
  @ConditionalOnJava : 指定的 Java 版本存在时起效
  @ConditionalOnWebApplication : Web 应用环境下起效
  @ConditionalOnNotWebApplication : 非 Web 应用环境下起效



二:示例

1. 结构

  

 

2. 说明

  在加载的时候,会通过一些注解进行匹配,然后都通过了,@EnableConfiguration 才可以加载。

  同时,可以不写 @SpringBootApplication 注解了。

 

3. 说明项目

  一共两个。

  第一个是加载合适的 bean

  第二个是使用。

 

三:项目一

1.pom 文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.7.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.jun</groupId>
    <artifactId>enableautoconfiguration</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>enableautoconfiguration</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
            <version>2.0.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <version>2.0.4.RELEASE</version>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>


</project>

 

2.hello

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.7.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.jun</groupId>
    <artifactId>enableautoconfiguration</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>enableautoconfiguration</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
            <version>2.0.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <version>2.0.4.RELEASE</version>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>


</project>

 

3.helloproperties

package com.jun.enableautoconfiguration;

import org.springframework.boot.context.properties.ConfigurationProperties;

@ConfigurationProperties(prefix = "hello") //获取属性值
public class HelloProperties {
    private static final String MSG = "world";

    private String msg = MSG ;

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }
}

 

4.helloautoconfiguration

 1 package com.jun.enableautoconfiguration;
 2 
 3 import org.springframework.beans.factory.annotation.Autowired;
 4 import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
 5 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 6 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 7 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 8 import org.springframework.context.annotation.Bean;
 9 import org.springframework.context.annotation.Configuration;
10 
11 @Configuration        //为带有@ConfigurationProperties注解的Bean提供有效的支持。
12                       // 这个注解可以提供一种方便的方式来将带有@ConfigurationProperties注解的类注入为Spring容器的Bean。
13 @EnableConfigurationProperties(HelloProperties.class)       //开启属性注入,通过@autowired注入
14 @ConditionalOnClass(Hello.class)           //判断这个类是否在classpath中存在,如果存在,才会实例化一个Bean
15 @ConditionalOnProperty(prefix="hello", value="enabled", matchIfMissing = true)
16 public class HelloAutoConfiguration {
17 
18     @Autowired
19     private HelloProperties helloProperties;
20 
21     @Bean
22     @ConditionalOnMissingBean(Hello.class)//容器中如果没有Hello这个类,那么自动配置这个Hello
23     public Hello hello() {
24         Hello hello = new Hello();
25         hello.setMsg(helloProperties.getMsg());
26         return hello;
27     }
28 
29 }

 

5.spring.factories

org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.jun.enableautoconfiguration.HelloAutoConfiguration

 

四:使用项目

1.application.properties

#可以不配置
hello.enabled=true

hello.msg=uuibiu

#以debug模式运行
debug=true

 

2.WenApplication

 1 package com.jun.web;
 2 
 3 import com.jun.enableautoconfiguration.Hello;
 4 import org.slf4j.Logger;
 5 import org.slf4j.LoggerFactory;
 6 import org.springframework.beans.factory.annotation.Autowired;
 7 import org.springframework.boot.SpringApplication;
 8 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 9 import org.springframework.boot.autoconfigure.SpringBootApplication;
10 import org.springframework.context.ConfigurableApplicationContext;
11 import org.springframework.core.env.ConfigurableEnvironment;
12 import org.springframework.web.bind.annotation.RequestMapping;
13 import org.springframework.web.bind.annotation.RestController;
14 
15 @SpringBootApplication
16 @EnableAutoConfiguration
17 @RestController
18 public class WebApplication {
19     private static final Logger logger = LoggerFactory.getLogger(WebApplication.class);
20 
21     @Autowired
22     private Hello hello;
23 
24     @RequestMapping("/")
25     public String index() {
26         return hello.sayHello();
27     }
28 
29     public static void main(String[] args) {
30         ConfigurableApplicationContext context = SpringApplication.run(WebApplication.class, args);
31         ConfigurableEnvironment environment = context.getEnvironment();
32         logger.info("hello.msg:{}",environment.getProperty("hello.msg"));
33 
34     }
35 
36 }

 

01.springboot入门--启用自动配置注解EnableAutoConfiguration

01.springboot入门--启用自动配置注解EnableAutoConfiguration

####springboot入门

 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.6.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

####启用自动配置注解

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@EnableAutoConfiguration(exclude = {RedisAutoConfiguration.class}) //启动自动配置,排除RedisAutoConfiguration
@RestController
public class IndexController {
    @RequestMapping("/")
    public String first(){
        return "hello";
    }

    public static void main(String[] args){
        SpringApplication.run(IndexController.class,args);
    }
}

EnableAutoConfigurationSpring注释如何工作?

EnableAutoConfigurationSpring注释如何工作?

我不喜欢抽象,但 我认为Spring犯了重罪。

但是,如果有人可以解释“自动”配置背后的算法,那么我这次愿意忽略它。

看看spring自己的javadocs,除了说它将智能地猜测您需要的东西以及对条件bean要做的事情之外,它并没有什么其他的。

有人知道用于确定需要加载哪些算法的算法吗?

EnableAutoConfiguration注解 Spring中@Import注解的作用和使用

EnableAutoConfiguration注解 Spring中@Import注解的作用和使用

EnableAutoConfiguration注解

http://www.51gjie.com/javaweb/1046.html

springboot@EnableAutoConfiguration 注解的作用以及加载流程

https://blog.csdn.net/qq_36872046/article/details/83662761

mybatis源码-@Mapper @MapperScan配置及注入原理

https://www.jianshu.com/p/dba49fc5a741

Spring Boot @EnableAutoConfiguration解析

https://www.jianshu.com/p/5cb57be5d0ea

Spring中@Import注解的作用和使用

https://blog.csdn.net/panchao888888/article/details/82882279

 

springboot@EnableAutoConfiguration 注解的作用以及加载流程

我们今天的关于在 Spring Boot 中使用 @EnableAutoConfiguration 时命名预期错误的分享已经告一段落,感谢您的关注,如果您想了解更多关于007 SpringBoot 的 @EnableAutoConfiguration 注解、01.springboot入门--启用自动配置注解EnableAutoConfiguration、EnableAutoConfigurationSpring注释如何工作?、EnableAutoConfiguration注解 Spring中@Import注解的作用和使用的相关信息,请在本站查询。

以上就是给各位分享在 GCP python 云函数中,数据帧在读取 csv 文件时将 放在末尾,同时本文还将给你拓展Python 2.x 中如何使用csv模块读取和写入CSV文件、Python 3.x 中如何使用csv模块读取和写入CSV文件、python – 从谷歌云存储中读取csv到pandas数据帧、python – 使用pandas读取.csv文件时指定时间戳措辞格式?等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

在 GCP python 云函数中,数据帧在读取 csv 文件时将  放在末尾

在 GCP python 云函数中,数据帧在读取 csv 文件时将 放在末尾

问题在于依赖项本身而不是 Cloud Functions,因为我能够在安装了 Python 3.8 和 Pandas 1.2.0 的机器上复制这个问题。

要删除空行,请删除 dataframe.to_json 上的“行”:

data = dataframe.to_json(orient="records").split('\n')

或者简单地这样称呼它:

data = dataframe.to_json(orient="records")

但是,格式可能会略有变化。如果有问题,我建议您降低依赖版本(pandas)。

,

我能够通过将版本 pandas==1.1.3 显式放入 requirements.txt 来解决该问题。由于我之前的 requirements.txt 没有提到任何版本,它实际上是在获取最新版本的 Pandas,现在是 1.3.0。这个最新版本实际上是在 pd.read() 中使用 'lines =True' 读取时在行尾添加 ' '

Python 2.x 中如何使用csv模块读取和写入CSV文件

Python 2.x 中如何使用csv模块读取和写入CSV文件

python 2.x 中如何使用csv模块读取和写入csv文件

导言:
CSV(Comma Separated Values)是一种常见的文件格式,用于存储和交换数据。Python的csv模块提供了一种简单的方式来读取和写入CSV文件。本文将介绍如何使用csv模块在Python 2.x中读取和写入CSV文件,并提供相应的代码示例。

一、读取CSV文件
要读取CSV文件,首先需要导入csv模块。然后,通过打开文件并创建一个csv.reader对象来读取CSV文件的内容。

代码示例:

import csv

# 打开CSV文件
with open(''data.csv'', ''r'') as file:
    # 创建csv.reader对象
    reader = csv.reader(file)
    
    # 读取文件内容
    for row in reader:
        # 打印每一行数据
        print(row)
登录后复制

在上述代码中,我们使用with open(''data.csv'', ''r'') as file打开CSV文件,并创建了一个csv.reader对象。然后,我们可以通过遍历csv.reader对象来逐行读取文件的内容。每一行的数据以列表的形式返回,我们可以对每一行进行相应的处理。

立即学习“Python免费学习笔记(深入)”;

点击下载“修复打印机驱动工具”;

二、写入CSV文件
要将数据写入CSV文件,同样需要先导入csv模块。然后,通过打开文件并创建一个csv.writer对象来写入CSV文件。

代码示例:

import csv

# 要写入的数据
data = [
    [''Name'', ''Age'', ''Gender''],
    [''Alice'', ''20'', ''Female''],
    [''Bob'', ''25'', ''Male''],
    [''Charlie'', ''30'', ''Male'']
]

# 打开CSV文件
with open(''data.csv'', ''w'') as file:
    # 创建csv.writer对象
    writer = csv.writer(file)
    
    # 写入数据
    for row in data:
        writer.writerow(row)
登录后复制

在上述代码中,我们首先定义了要写入CSV文件的数据,这里使用一个列表表示。然后,我们使用with open(''data.csv'', ''w'') as file打开CSV文件,并创建了一个csv.writer对象。然后,我们通过遍历数据,并使用writer.writerow(row)方法将每一行数据写入文件。

三、指定分隔符
默认情况下,csv模块使用逗号作为分隔符。如果CSV文件使用其他字符作为分隔符,可以通过指定delimiter参数来进行设置。

代码示例:

import csv

# 打开CSV文件,指定分隔符为分号
with open(''data.csv'', ''r'') as file:
    reader = csv.reader(file, delimiter='';'')
    
    for row in reader:
        print(row)
登录后复制

在上述代码中,我们使用delimiter参数将分隔符设置为分号。这样,读取CSV文件时,csv.reader将使用分号作为每一行数据的分隔符。

总结:
本文介绍了如何使用Python 2.x中的csv模块读取和写入CSV文件,并提供了相应的代码示例。读取CSV文件时,需要创建一个csv.reader对象,并通过遍历该对象来逐行读取文件的内容。写入CSV文件时,需要创建一个csv.writer对象,并使用writer.writerow(row)方法将每一行数据写入文件。另外,我们还介绍了如何通过指定delimiter参数来设置分隔符。以上方法可以帮助你使用Python 2.x处理CSV文件中的数据。

以上就是Python 2.x 中如何使用csv模块读取和写入CSV文件的详细内容,更多请关注php中文网其它相关文章!

Python 3.x 中如何使用csv模块读取和写入CSV文件

Python 3.x 中如何使用csv模块读取和写入CSV文件

python 3.x 中如何使用csv模块读取和写入csv文件

引言:
CSV(Comma-Separated Values)是一种常见的文件格式,用于存储表格数据。在Python中,可以使用csv模块来处理CSV文件,该模块提供了读取和写入CSV文件的功能。本文将介绍如何使用csv模块在Python 3.x中读取和写入CSV文件,并提供代码示例。

一、使用csv模块读取CSV文件

首先,我们需要导入csv模块:

import csv
登录后复制
登录后复制

接下来,我们可以使用csv.reader()函数来读取CSV文件。该函数需要传入一个文件对象,我们可以使用open()函数来打开一个CSV文件,并把文件对象作为参数传给csv.reader()函数。

立即学习“Python免费学习笔记(深入)”;

点击下载“修复打印机驱动工具”;

假设我们有一个名为data.csv的CSV文件,该文件的内容如下:

name,age,city
John,25,New York
Peter,30,Chicago
Sarah,28,Los Angeles
登录后复制

下面是一个简单的代码示例,展示如何使用csv模块来读取CSV文件:

import csv

with open(''data.csv'', ''r'') as file:
    csv_reader = csv.reader(file)
    for row in csv_reader:
        print(row)
登录后复制

运行上述代码,将会输出CSV文件中的每一行数据。在这个示例中,我们使用了一个for循环来遍历csv_reader对象,以逐行打印CSV文件中的数据。

二、使用csv模块写入CSV文件

与读取CSV文件类似,我们也可以使用csv模块来写入CSV文件。同样需要导入csv模块:

import csv
登录后复制
登录后复制

然后,我们可以使用csv.writer()函数来创建一个csv_writer对象,该对象可以将数据写入CSV文件。该函数需要传入一个文件对象,同样可以使用open()函数来打开一个CSV文件,并把文件对象作为参数传给csv.writer()函数。

下面是一个简单的代码示例,展示如何使用csv模块来写入CSV文件:

import csv

data = [
    [''name'', ''age'', ''city''],
    [''John'', ''25'', ''New York''],
    [''Peter'', ''30'', ''Chicago''],
    [''Sarah'', ''28'', ''Los Angeles'']
]

with open(''output.csv'', ''w'', newline='''') as file:
    csv_writer = csv.writer(file)
    csv_writer.writerows(data)
登录后复制

运行上述代码,将会在当前目录下创建一个名为output.csv的CSV文件,并将data中的数据写入到该文件中。

在代码示例中,我们首先定义了一个二维列表data,其中包含了CSV文件的每一行数据。然后,我们使用csv.writerows()函数将整个列表写入CSV文件。

总结:
通过csv模块,我们可以很方便地在Python 3.x中读取和写入CSV文件。在读取CSV文件时,我们可以使用csv.reader()函数和for循环来逐行处理数据;在写入CSV文件时,我们可以使用csv.writer()函数和csv_writer.writerows()函数来将数据写入CSV文件中。

希望本文对你在Python中使用csv模块读取和写入CSV文件有所帮助。祝学习愉快!

以上就是Python 3.x 中如何使用csv模块读取和写入CSV文件的详细内容,更多请关注php中文网其它相关文章!

python – 从谷歌云存储中读取csv到pandas数据帧

python – 从谷歌云存储中读取csv到pandas数据帧

我正在尝试将Google Cloud Storage存储桶中的csv文件读取到熊猫数据框中.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
from io import BytesIO

from google.cloud import storage

storage_client = storage.Client()
bucket = storage_client.get_bucket('createbucket123')
blob = bucket.blob('my.csv')
path = "gs://createbucket123/my.csv"
df = pd.read_csv(path)

它显示以下错误消息:

FileNotFoundError: File b'gs://createbucket123/my.csv' does not exist

我做错了什么,我找不到任何不涉及谷歌datalab的解决方案?

解决方法

UPDATE

截至0.24版本的pandas,read_csv支持直接从Google云端存储中读取.只需提供链接到这样的桶:

df = pd.read_csv('gs://bucket/your_path.csv')

为了完整起见,我还留下了其他三个选项.

>自制代码
> gcsfs
> dask

我将在下面介绍它们.

艰难的方法:自己动手做代码

我已经写了一些便利功能来从Google存储中读取.为了使其更具可读性,我添加了类型注释.如果你碰巧在Python 2上,只需删除它们,代码将完全相同.

假设您获得授权,它在公共和私人数据集上同样有效.在此方法中,您无需先将数据下载到本地驱动器.

如何使用它:

fileobj = get_byte_fileobj('my-project','my-bucket','my-path')
df = pd.read_csv(fileobj)

代码:

from io import BytesIO,StringIO
from google.cloud import storage
from google.oauth2 import service_account

def get_byte_fileobj(project: str,bucket: str,path: str,service_account_credentials_path: str = None) -> BytesIO:
    """
    Retrieve data from a given blob on Google Storage and pass it as a file object.
    :param path: path within the bucket
    :param project: name of the project
    :param bucket_name: name of the bucket
    :param service_account_credentials_path: path to credentials.
           TIP: can be stored as env variable,e.g. os.getenv('GOOGLE_APPLICATION_CREDENTIALS_DSPLATFORM')
    :return: file object (BytesIO)
    """
    blob = _get_blob(bucket,path,project,service_account_credentials_path)
    byte_stream = BytesIO()
    blob.download_to_file(byte_stream)
    byte_stream.seek(0)
    return byte_stream

def get_bytestring(project: str,service_account_credentials_path: str = None) -> bytes:
    """
    Retrieve data from a given blob on Google Storage and pass it as a byte-string.
    :param path: path within the bucket
    :param project: name of the project
    :param bucket_name: name of the bucket
    :param service_account_credentials_path: path to credentials.
           TIP: can be stored as env variable,e.g. os.getenv('GOOGLE_APPLICATION_CREDENTIALS_DSPLATFORM')
    :return: byte-string (needs to be decoded)
    """
    blob = _get_blob(bucket,service_account_credentials_path)
    s = blob.download_as_string()
    return s


def _get_blob(bucket_name,service_account_credentials_path):
    credentials = service_account.Credentials.from_service_account_file(
        service_account_credentials_path) if service_account_credentials_path else None
    storage_client = storage.Client(project=project,credentials=credentials)
    bucket = storage_client.get_bucket(bucket_name)
    blob = bucket.blob(path)
    return blob

gcsfs

gcsfs是“用于Google云端存储的Pythonic文件系统”.

如何使用它:

import pandas as pd
import gcsfs

fs = gcsfs.GCSFileSystem(project='my-project')
with fs.open('bucket/path.csv') as f:
    df = pd.read_csv(f)

dask

Dask“为分析提供高级并行性,为您喜爱的工具提供大规模性能”.当您需要在Python中处理大量数据时,它非常棒. dask尝试模仿大部分的pandas API,使其易于用于新手.

这是read_csv

如何使用它:

import dask.dataframe as dd

df = dd.read_csv('gs://bucket/data.csv')
df2 = dd.read_csv('gs://bucket/path/*.csv') # nice!

# df is Now dask dataframe,ready for distributed processing
# If you want to have the pandas version,simply:
df_pd = df.compute()

python – 使用pandas读取.csv文件时指定时间戳措辞格式?

python – 使用pandas读取.csv文件时指定时间戳措辞格式?

我有一个.csv文件,其中有数千个条目由数据记录器创建.

格式或多或少是这样的:

time                | data
01/07/2015 12:25:45 | 356.24
01/07/2015 12:25:50 | 357.24
01/07/2015 12:25:55 | 351.24
01/07/2015 12:26:00 | 357.20
01/07/2015 12:26:05 | 356.32
...

当我使用pandas读取文件时

import pandas as pd
df = pd.read_csv(filename,parse_dates=True,infer_datetime_format=True)

某些日期由于某种原因被识别为错误,因此我想手动指定日期格式字符串,格式为de format string format_str =’%d /%m /%Y%H:%M:%S’

我怎样才能做到这一点?

解决方法

The pandas.read_csv function不仅采用parse_dates =参数,还采用date_parser =参数.使用date_parser =参数,您可以指定自己的函数来解析日期.

像这样:

def myparser(x):
    return datetime.strptime(x,''%d/%m/%Y %H:%M:%s'')

df = pd.read_csv(filename,date_parser=myparser)

这应确保始终仅使用该格式解析日期.

最好在读取csv时解析日期,而不是之后,因为你不必先将所有字符串加载到内存中,然后转换它们,而是在运行时转换它们.

它更有内存效率.

今天的关于在 GCP python 云函数中,数据帧在读取 csv 文件时将 放在末尾的分享已经结束,谢谢您的关注,如果想了解更多关于Python 2.x 中如何使用csv模块读取和写入CSV文件、Python 3.x 中如何使用csv模块读取和写入CSV文件、python – 从谷歌云存储中读取csv到pandas数据帧、python – 使用pandas读取.csv文件时指定时间戳措辞格式?的相关知识,请在本站进行查询。

此处将为大家介绍关于无法从 Firebase Cloud Functions 连接到 Google SQL PostgreSQL 实例的详细内容,此外,我们还将为您介绍关于android – Google Cloud Function Node.js Firebase网址、android-FIrebase Cloud Messaging,无法解析依赖项com.google.firebase:firebase-core:9.0.2、Cloud Functions 数据操作问题中的 Firebase 管理员、Firebase Cloud Functions HTTPS中的参数的有用信息。

本文目录一览:

无法从 Firebase Cloud Functions 连接到 Google SQL PostgreSQL 实例

无法从 Firebase Cloud Functions 连接到 Google SQL PostgreSQL 实例

从图片来看,我可以说您的函数部署在一个 API 项目中,并且您在评论中提到您的 Cloud SQL 实例位于不同的项目中。

要解决您的问题,请转到您的 Cloud SQL 实例所在的项目并选择 IAM。您需要在那里添加您的 Cloud Functions 正在使用的服务帐户并将 Cloud SQL Client 角色放入其中。

android – Google Cloud Function Node.js Firebase网址

android – Google Cloud Function Node.js Firebase网址

我有一个 Android应用程序,我能够以http格式从我的设备发送推送通知,但现在我想写一个节点,我希望在特定的日期和时间安排推送通知,有人请帮助我,我是长期坚持这个过程

这是我的节点;

const functions = require(''firebase-functions'');
const admin = require(''firebase-admin'');
admin.initializeApp(functions.config().firebase);


exports.sendNotification = functions.https.onRequest((req,res) => {
  const to = req.query.to;
  const title = req.query.title;
  const body = req.query.body;

  var payload;
  if (body != undefined && body !== '''') {
    payload = {
      notification: {
        title: title,body: body
      }
    };
  } else {
    payload = {
      notification: {
        title: title
      }
    };
  }

  var options = {
    priority: "high",timetoLive: 60 * 60 * 24
  };

  if (to == ''all'') {
    admin.messaging().sendToTopic(to,payload,options)
      .then(function (response) {
        res.send(200,''ok'');
      })
      .catch(function (error) {
        res.send(200,''Failed'');
      });
  } else {
    admin.messaging().sendToDevice(to,''Failed'');
      });
  }
});

在运行推送通知时,我有URL,

https://MyProjectName.cloudfunctions.net/sendNotification?to=all&title=hello&body=EnterBodyHere

现在,请帮我安排这样的推送通知

本地主机:8080:/?schedulePush天= 17&安培;一个月= 10安培;小时= 12&安培;分钟= 22

解决方法

云功能目前没有内置的调度机制.如果要在特定时间执行函数,则需要使用其他调度程序.有一个关于这个的 blog post,以及 sample code也讨论了这一点.

android-FIrebase Cloud Messaging,无法解析依赖项com.google.firebase:firebase-core:9.0.2

android-FIrebase Cloud Messaging,无法解析依赖项com.google.firebase:firebase-core:9.0.2

我试图按照here给出的指南使用Firebase Cloud Messaging编写应用程序,但我为添加实现FCM的依赖项而感到惊讶(com.google.firebase:firebase-core:9.0.2).每次我尝试通过项目结构添加它时,它都不会在搜索结果中列出依赖项.当我尝试将其添加到应用程序级别gradle中时,它给我一个错误,导致无法解决依赖关系.我不知道我要去哪里错了,但是请帮我解决这个问题.

解决方法:

从您的SDK管理器下载更新.我遇到过同样的问题.从SDK经理更新Google Play服务和Google Repository对我来说很有效.

Cloud Functions 数据操作问题中的 Firebase 管理员

Cloud Functions 数据操作问题中的 Firebase 管理员

如何解决Cloud Functions 数据操作问题中的 Firebase 管理员?

Firebase 实时数据库结构

Database organizations

freepacks 包含两个重要元素:

  1. current,这是我将从移动应用下载的测验包 ID(从 quizpacks 检索)。
  2. history,这是一个节点,我在其中添加了随时间推移放入 current 中的所有测验包 ID,以及 Cloud Functions 中的预定函数。

每次执行云功能时我需要做什么

第 1 步:current 中添加 history 的值和当前时间戳。

第 2 步:用另一个 不在历史上的测验包 ID 替换 current 值。

完成

我是如何努力实现这个目标的

const functions = require(''firebase-functions'');
const admin = require(''firebase-admin'');

admin.initializeApp();

exports.scheduledFunction = functions.pubsub.schedule(''* * * * *'').onRun((context) => {

    // Current timestamp
    const dt = new Date();
    const timestamp = `${
        (dt.getMonth()+1).toString().padStart(2,''0'')}/${
        dt.getDate().toString().padStart(2,''0'')}/${
        dt.getFullYear().toString().padStart(4,''0'')} ${
        dt.getHours().toString().padStart(2,''0'')}:${
        dt.getMinutes().toString().padStart(2,''0'')}:${
        dt.getSeconds().toString().padStart(2,''0'')}`

    // Download the entire node ''freepacks''
    return admin.database().ref(''quiz/freepacks'').once(''value'').then((currentSnap) => {
        const currentPack = currentSnap.val().current;

        // Add current to history
        admin.database().ref(''quiz/freepacks/history/'' + currentPack).set(timestamp);
        
        // Download entire history node
        admin.database().ref(''quiz/freepacks/history'').once(''value'').then((historySnap) => {
            const history = historySnap.val();
            console.log(''HISTORY: '' + history);

            // Download entire quizpacks node
            admin.database().ref(''quiz/quizpacks'').once(''value'').then((quizpacksSnap) => {
                for(quizpack in Object.keys(quizpacksSnap.val())) {
                    console.log(''IteraNDO: '' + quizpack);
                    // Add the new current if it isn''t in history
                    if (historySnap[quizpack] == undefined) {
                        admin.database().ref(''quiz/freepacks/current'').set(quizpack);
                        break;
                    }
                }
            });

        })

    });
    
});

我从之前的代码中得到了什么

起点:

Starting point

第一次执行:历史更新良好但更新current无效

First execution

第二次执行广告等等... current 不再更新(停留在 0)

我使用 JavaScript 和 Firebase Admin 的经验是 ~0...我的代码有什么问题?在此先感谢您的帮助!

解决方法

首先是所有读/写操作都返回承诺,因此您应该处理它们。在这个答案中,我使用了 async-await 语法。 .ref("quiz/freepacks") 获取完整节点,即当前节点和历史节点,因此您不必像在原始代码中那样再次查询历史节点。其他更改只是 Javascript 调整,例如使用 .find() 而不是 for-loop 等等..

尝试将您的函数更改为:

exports.scheduledFunction = functions.pubsub
  .schedule("* * * * *")
  .onRun(async (context) => {
    // Getting Date
    const dt = new Date();
    const timestamp = `${(dt.getMonth() + 1).toString().padStart(2,"0")}/${dt
      .getDate()
      .toString()
      .padStart(2,"0")}/${dt.getFullYear().toString().padStart(4,"0")} ${dt
      .getHours()
      .toString()
      .padStart(2,"0")}:${dt.getMinutes().toString().padStart(2,"0")}:${dt
      .getSeconds()
      .toString()
      .padStart(2,"0")}`;

    // Download the entire node ''freepacks''
    const currentSnap = await firebase
      .database()
      .ref("quiz/freepacks")
      .once("value");

    // Checking current free pack ID and array of previous free packs
    const currentPack = currentSnap.val().current || "default";
    const freeHistoryIDs = [
      ...Object.keys(currentSnap.val().history || {}),currentPack,];

    // Add current free pack to free history
    await firebase
      .database()
      .ref("quiz/freepacks/history/" + currentPack)
      .set(timestamp);

    // Download entire quizpacks node
    const quizpacksSnap = await firebase
      .database()
      .ref("quiz/quizpacks")
      .once("value");

    const quizPackIDs = Object.keys(quizpacksSnap.val() || {});

    const newPack = quizPackIDs.find((id) => !freeHistoryIDs.includes(id));
    console.log(newPack);
    if (!newPack) {
      console.log("No new pack found")
    }
    return firebase.database().ref("quiz/freepacks/current").set(newPack || "none");
  });

Firebase Cloud Functions HTTPS中的参数

Firebase Cloud Functions HTTPS中的参数

如何在Firebase中的HTTPS函数上设置一些参数?我正在构建一个应用程序,并且在构建该应用程序时,我设法增加了邮件列表。现在我想发送邮件,但是我想确保在我发送任何邮件之前它们可以退订。

我正在使用Firebase进行所有操作,并且设法创建了一个将邮件发送到每个已订阅邮件的功能。

我还可以“取消订阅”特定的邮件,但这是硬编码的,根本不是最佳解决方案。

exports.testUnsub = functions.https.onRequest((req, res) => {  var db = admin.database();  var ref = db.ref("mailingList/-KhBOisltrOmv57Mrzus");  ref.child("subscribed").set(false);  console.log("-KhBOisltrOmv57Mrzus has unsubscribed from mailing list.");});

在我发送的邮件中,有一个URL触发了此HTTPS功能。我想在该URL上设置参数,以使其变为动态。就像是:

https://us-central1-<project-id>.cloudfunctions.net/testUnsub?listID=xxxxxxxxxxx

我正在寻找可以使我朝正确方向发展的任何事物。

答案1

小编典典

重要的是要知道,https函数的req和res参数是Express.js请求和响应对象。

该请求对象包含所有关于请求来自客户端,包括数据查询客户端的URL发送。它将采用表格形式req.query.name_of_the_parameter

我们今天的关于无法从 Firebase Cloud Functions 连接到 Google SQL PostgreSQL 实例的分享已经告一段落,感谢您的关注,如果您想了解更多关于android – Google Cloud Function Node.js Firebase网址、android-FIrebase Cloud Messaging,无法解析依赖项com.google.firebase:firebase-core:9.0.2、Cloud Functions 数据操作问题中的 Firebase 管理员、Firebase Cloud Functions HTTPS中的参数的相关信息,请在本站查询。

在本文中,我们将带你了解导入 python pydriller 模块在 venv 中不起作用在这篇文章中,我们将为您详细介绍导入 python pydriller 模块在 venv 中不起作用的方方面面,并解答python中导入模块用什么命令常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的+/- 在 python kivy gui 计算器中不起作用、.py 到 pydrion 或 pydriod 上的 apk 任何方法都不起作用、.write在Python中不起作用、argparse模块在Python中不起作用

本文目录一览:

导入 python pydriller 模块在 venv 中不起作用(python中导入模块用什么命令)

导入 python pydriller 模块在 venv 中不起作用(python中导入模块用什么命令)

问题是我的python文件名是“pydriller.py”,我需要重命名它以避免导入冲突(希望这对某人有所帮助)。

+/- 在 python kivy gui 计算器中不起作用

+/- 在 python kivy gui 计算器中不起作用

如何解决+/- 在 python kivy gui 计算器中不起作用?

我想出了如何在 python 中使用 kivy 制作计算器的所有方法,但我无法找到为什么我的加号到减号转换器确实有效,但正因为如此,我无法拒绝在没有符号的情况下输入一个又一个符号在中间输入任意数字

例如:

def equals(self):
    global answer,int_answer
    try :
        prior = self.ids.top_bar.text
        if u"\u00D7" in prior:
            num_list = prior.split(u"\u00D7")
            x = "*"
            num_list2 = x.join(num_list)
            answer = eval(num_list2)
            self.ids.top_bar.text = str(answer)
        elif u"\u00F7" in prior:
            num_list = prior.split(u"\u00F7")
            x = "/"
            num_list2 = x.join(num_list)
            answer = eval(num_list2)
            for num in num_list:
                if num.isdigit():
                    int_answer = int(answer)
                    self.ids.top_bar.text = str(int_answer)
                elif not num.isdigit():
                    float_answer = float(answer)
                    self.ids.top_bar.text = str(float_answer)
        else:
            answer = eval(prior)
            self.ids.top_bar.text = str(answer)
    except ValueError:
        print("error")
    except ZeroDivisionError:
        self.ids.top_bar.text = "Can''t divide by zero"
        if self.ids.top_bar.text == "Can''t divide by zero":
            self.ids.top_bar.font_size = 30
    except SyntaxError:
        print("error")

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

.py 到 pydrion 或 pydriod 上的 apk 任何方法都不起作用

.py 到 pydrion 或 pydriod 上的 apk 任何方法都不起作用

如何解决.py 到 pydrion 或 pydriod 上的 apk 任何方法都不起作用?

嘿,我在 pydriod 应用程序上使用 python 制作了两个游戏(蛇游戏和恐龙游戏),因为我没有任何个人电脑或笔记本电脑 我想将这些游戏转换为 apk 但我无法转换

任何将 .py 转换为 .apk 在 android 上的方法

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

.write在Python中不起作用

.write在Python中不起作用

我对Python相当陌生,所以希望我在这里只是缺少一些明显的东西,但这让我很困惑。我的程序片段如下:

outFile = open('P4Output.txt','w')
outFile.write(output)
print output
print "Output saved to \"P4Output.txt\"\n"

输出正确地打印到控制台,但是如果我打开文件,它是空白的。如果删除文件并再次执行程序,则文件已创建,但仍然为空。我以前在我的另一个程序中使用了完全相同的代码块,并且该代码块仍然有效。但是,如果我打开Python并尝试简单的操作,例如:

f = open('test.txt','w')
f.write("test")

再次创建test.txt,但将其留为空白。是什么赋予了?

argparse模块在Python中不起作用

argparse模块在Python中不起作用

我正在尝试使argparse模块在Python中工作。我的问题是,在全新安装中,我得到以下信息:

File "test.py",line 3,in <module>
import argparse
File "/home/jon/Pythons/realmine/argparse.py",in <module>
parser = argparse.ArgumentParser(description='Short sample app')
AttributeError: 'module' object has no attribute 'ArgumentParser'

test.py 是:

import argparse

显然,我缺少了一些东西。有人可以帮忙吗?

我们今天的关于导入 python pydriller 模块在 venv 中不起作用python中导入模块用什么命令的分享已经告一段落,感谢您的关注,如果您想了解更多关于+/- 在 python kivy gui 计算器中不起作用、.py 到 pydrion 或 pydriod 上的 apk 任何方法都不起作用、.write在Python中不起作用、argparse模块在Python中不起作用的相关信息,请在本站查询。

对于Android TelephonyManager 权限感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解android 电话权限,并且为您提供关于Android api23调用TelephonyManager中的getAllCellInfo()获取到的集合size为0,请问是什么原因?、Android BatteryManager 获取手机电量、Android KeyguardManager或IDevicePolicyManager锁屏、Android log cat显示android.content.pm.PackageManager $NameNotFoundException:应用程序包com.google.android.ba的宝贵知识。

本文目录一览:

Android TelephonyManager 权限(android 电话权限)

Android TelephonyManager 权限(android 电话权限)

创建权限请求代码的全局 final int

final int PHONE_REQUEST_CODE = 101;

如果未授予,则请求许可

if (ActivityCompat.checkSelfPermission(this,Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {

    requestPermissions(new String[]{Manifest.permission.READ_PHONE_STATE},PHONE_REQUEST_CODE); // triggers onRequestPermissionsResult()

} else {
     // calculate(myView); // Do whatever you want as the permission is already granted
}

并覆盖活动中的onRequestPermissionsResult()

@Override
public void onRequestPermissionsResult(int requestCode,@NonNull String[] permissions,@NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode,permissions,grantResults);
    if (grantResults.length == 0)
        return;

    if (requestCode == PHONE_REQUEST_CODE) {
        if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
           // calculate(myView); // Do whatever you want after the permission is granted
}

并在 manifest.xml 中添加权限。

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

Android api23调用TelephonyManager中的getAllCellInfo()获取到的集合size为0,请问是什么原因?

Android api23调用TelephonyManager中的getAllCellInfo()获取到的集合size为0,请问是什么原因?

两个权限,都添加上,4G,LTE网络,获取到的集合size为空,求指教

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

Android BatteryManager 获取手机电量

Android BatteryManager 获取手机电量

//fragment中使用
BatteryManager manager = (BatteryManager) getContext().getSystemService(Context.BATTERY_SERVICE);
manager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY);
Log.d("123", "onClick: " + manager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY) + "%");
textView.setText(manager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY) + "%");
//activity中使用
BatteryManager manager = (BatteryManager) getSystemService(Context.BATTERY_SERVICE);
manager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY);
Log.d("123", "onClick: " + manager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY) + "%");
textView.setText(manager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY) + "%");

Android KeyguardManager或IDevicePolicyManager锁屏

Android KeyguardManager或IDevicePolicyManager锁屏

Android屏幕保护KeyguardManager


Android手机一般不用时,都会通过电源键来锁定屏幕同时关闭屏幕灯。


锁定效果:

要让自己的应用实现该屏幕锁定,主要需要用到以下几个类:DevicePolicyManager 
这是设备管理的主类。通过它可以实现屏幕锁定、屏幕亮度调节、出厂设置等功能。

DeviceAdminReceiver 
该类继承自 BroadcastReceiver 。 从源码可以看到,其实就是实现了一个OnReceive方法,该方法中根据不同的Action,执行相应的操作。 比如,如果激活成功,那么Action就是ACTION_DEVICE_ADMIN_ENABLED, 据此调用 onEnabled 方法。

系统源码:

/**
     * Intercept standard device administrator broadcasts.  Implementations
     * should not override this method; it is better to implement the
     * convenience callbacks for each action.
     */
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (ACTION_PASSWORD_CHANGED.equals(action)) {
            onPasswordChanged(context, intent);
        } else if (ACTION_PASSWORD_FAILED.equals(action)) {
            onPasswordFailed(context, intent);
        } else if (ACTION_PASSWORD_SUCCEEDED.equals(action)) {
            onPasswordSucceeded(context, intent);
        } else if (ACTION_DEVICE_ADMIN_ENABLED.equals(action)) {
            onEnabled(context, intent);
        } else if (ACTION_DEVICE_ADMIN_DISABLE_REQUESTED.equals(action)) {
            CharSequence res = onDisableRequested(context, intent);
            if (res != null) {
                Bundle extras = getResultExtras(true);
                extras.putCharSequence(EXTRA_DISABLE_WARNING, res);
            }
        } else if (ACTION_DEVICE_ADMIN_DISABLED.equals(action)) {
            onDisabled(context, intent);
        }
    }

具体中的简单引用:

屏幕锁定和恢复出厂设置

1.创建 MyAdmin 的广播接受者 继承 DeviceAdminReceiver

        <receiver android:name=".MyAdmin">
            <meta-data android:name="android.app.device_admin"
                android:resource="@xml/my_admin" />
            <intent-filter>
                <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
            </intent-filter>
        </receiver>

my_admin.xml

<?xml version="1.0" encoding="utf-8"?>
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
        <uses-policies>
                <limit-password />
                <watch-login />
                <reset-password />
                <force-lock />
                <wipe-data />
        </uses-policies>
</device-admin>

2.注册广播接受者为admin设备

ComponentName mAdminName = new ComponentName(this, MyAdmin.class);
if (mService != null) {
        if (!mService.isAdminActive(mAdminName)) {
                    Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
                    intent.putExtra (DevicePolicyManager.EXTRA_DEVICE_ADMIN,mAdminName);
                    startActivity(intent);
                }
}

3.获取IDevicePolicyManager

public void lockScreen()
{
        DevicePolicyManager  dm =  (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);
        ComponentName componentName = new ComponentName(this, MyDeviceAdmin.class);
        boolean isAdminActive = devicePolicyManager.isAdminActive(componentName);
        if(isAdminActive) //是否获得权限
        {
            dm.resetPassword("123", 0);  //滑动解锁屏幕条后需要输入密码(方法中新设置的密码)才能真正解锁
            dm.lockNow();
            //dm.setMaximumTimeToLock(mDeviceComponentName, timeout); 相应时间后锁屏
         //恢复出厂设置.
         //dm.wipeData(0);
      }else{  //获取管理员权限
           Intent intent = new Intent(
                    DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
            intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,mDeviceComponentName);
            intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,"这里可以输入一些额外的说明,比如提示用户什么的");
            startActivityForResult(intent, RESULT_ENABLE_LOCKVIEW);
      }
 }
 
 
  protected void onActivityResult(int paramInt1, int paramInt2, Intent paramIntent)
  {
    super.onActivityResult(paramInt1, paramInt2, paramIntent);
     DevicePolicyManager  dm =  (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);
     ComponentName componentName = new ComponentName(this, MyDeviceAdmin.class);
        boolean isAdminActive = devicePolicyManager.isAdminActive(componentName);
    if (paramInt1 == RESULT_ENABLE_LOCKVIEW && isAdminActive)
    {
        lockScreen();
    }
    else{
          Toast.makeText(this, "激活失败,无法获得管理员权限", 1).show();
      }
  }

4.MyDeviceAdmin

import android.app.admin.DeviceAdminReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.widget.Toast;

public class MyDeviceAdmin extends DeviceAdminReceiver
{
  public static String PREF_MAX_FAILED_PW;
  public static String PREF_PASSWORD_LENGTH;
  public static String PREF_PASSWORD_QUALITY = "password_quality";

  static
  {
    PREF_PASSWORD_LENGTH = "password_length";
    PREF_MAX_FAILED_PW = "max_failed_pw";
  }

  public static SharedPreferences getDevicePreference(Context paramContext)
  {
    return paramContext.getSharedPreferences(DeviceAdminReceiver.class.getName(), 0);
  }

  public CharSequence onDisableRequested(Context paramContext, Intent paramIntent)
  {
    return "这是一个可选的消息,警告有关禁止用户的请求";
  }

  public void onDisabled(Context paramContext, Intent paramIntent)
  {
    showToast(paramContext, "设备管理:不可用");
  }

  public void onEnabled(Context paramContext, Intent paramIntent)
  {
    showToast(paramContext, "设备管理:可用");
  }

  public void onPasswordChanged(Context paramContext, Intent paramIntent)
  {
    showToast(paramContext, "设备管理:密码己经改变");
  }

  public void onPasswordExpiring(Context paramContext, Intent paramIntent)
  {
    showToast(paramContext, "设备管理:密码过期");
    super.onPasswordExpiring(paramContext, paramIntent);
  }

  public void onPasswordFailed(Context paramContext, Intent paramIntent)
  {
    showToast(paramContext, "设备管理:输入密码错误");
  }

  public void onPasswordSucceeded(Context paramContext, Intent paramIntent)
  {
  }

  void showToast(Context paramContext, CharSequence paramCharSequence)
  {
    Toast.makeText(paramContext, paramCharSequence, 0).show();
  }
}

  <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT"/>

 <uses-permission android:name="android.permission.WAKE_LOCK"/



Android log cat显示android.content.pm.PackageManager $NameNotFoundException:应用程序包com.google.android.ba

Android log cat显示android.content.pm.PackageManager $NameNotFoundException:应用程序包com.google.android.ba

我是一个更新鲜的android,当我尝试在avd中运行我的应用程序时,在日志猫中发现以下异常,显示不幸的是我的应用程序无法运行,请帮助

 android.content.pm.PackageManager$NameNotFoundException: Application package com.google.android.backup not found
        at android.app.ContextImpl.createPackageContextAsUser(ContextImpl.java:2172)
        at android.app.ContextImpl.createPackageContext(ContextImpl.java:2148)
        at android.content.Contextwrapper.createPackageContext(Contextwrapper.java:671)
        at com.google.android.gms.backup.an.<init>(SourceFile:47)
        at com.google.android.gms.backup.BackupTransportMigratorService.f(SourceFile:248)
        at com.google.android.gms.backup.BackupTransportMigratorService.b(SourceFile:196)
        at com.google.android.gms.backup.BackupTransportMigratorService.onHandleIntent(SourceFile:131)
        at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:135)

我的android清单如下所示

         <?xml version="1.0" encoding="utf-8"?>
           <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cornex.criminalintent" >

<application
    android:allowBackup="true"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity android:name=".CrimeListActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
    <activity
        android:name=".CrimePagerActivity"
        android:label="@string/app_name" >

    </activity>
</application>

解决方法:

要创建数据备份应用程序,您需要使用Google备份服务注册您的应用程序.这已在示例中解释.注册后,您必须在AndroidManifest.XML中指定其密钥

 <application
   android:allowBackup="true"
   android:backupAgent="YOUR_BACKUP_AGENT">

   <Meta-data 
      android:name="com.google.android.backup.api_key"
      android:value="YOUR_API_KEY" />
</application>

Android提供BackUpAgentHelper类来处理数据备份的所有操作.要使用此类,您必须使用它扩展您的类.其语法如下:相应的备份代理可以实现,如下面的清单所示.

import android.app.backup.BackupAgentHelper;

public class YOUR_BACKUP_AGENT extends BackupAgentHelper {    

} 

要备份的持久性数据是两种形式之一.它可以是SharedPrefrences,也可以是File. Android在SharedPreferencesBackupHelper和FileBackupHelper各自的类中支持两种类型的备份.

要使用SharedPerefernceBackupHelper,您需要使用sharedPerefernces文件的名称实例化其对象.其语法如下 –

static final String File_Name_Of_Prefrences = "myPrefrences";
SharedPreferencesBackupHelper helper = new SharedPreferencesBackupHelper(this, File_Name_Of_Prefrences);

您需要做的最后一件事是通过指定备份密钥字符串和帮助程序对象来调用addHelper方法.其语法如下 –

addHelper(PREFS_BACKUP_KEY, helper);

addHelper方法将自动向给定数据子集添加帮助程序到代理程序的配置.

有关详细信息,请参阅this Tutorial和this article

今天的关于Android TelephonyManager 权限android 电话权限的分享已经结束,谢谢您的关注,如果想了解更多关于Android api23调用TelephonyManager中的getAllCellInfo()获取到的集合size为0,请问是什么原因?、Android BatteryManager 获取手机电量、Android KeyguardManager或IDevicePolicyManager锁屏、Android log cat显示android.content.pm.PackageManager $NameNotFoundException:应用程序包com.google.android.ba的相关知识,请在本站进行查询。

在本文中,我们将为您详细介绍Github 需要在合并前完成状态检查的相关知识,并且为您解答关于github 合并请求的疑问,此外,我们还会提供一些关于Azure DevOps - Github 状态检查、FastGithub:github加速神器,解决github打不开、用户头像无法加载、releases无法上传下载等问题。、Git / GitHub:将项目推送到 github 但保持挂起,什么也没有发生、git 上传代码到GitHub 以及git删除github上文件和文件的命令的有用信息。

本文目录一览:

Github 需要在合并前完成状态检查(github 合并请求)

Github 需要在合并前完成状态检查(github 合并请求)

如何解决Github 需要在合并前完成状态检查?

我知道如何在合并之前要求通过状态检查,但我希望只要求它们完成,无论它们是否通过。

具体来说,我们有一个针对每个拉取请求运行的单元测试检查。我们不希望在合并失败时阻止合并,但我们希望开发人员在合并分支之前需要查看结果。现在他们可以在运行单元测试的过程中合并它。

你知道有什么方法可以做到这一点吗?我已经查看了 github 文档,除了标准分支保护规则之外找不到任何其他内容,该规则没有此选项。感谢您的帮助!

附言here 上发布了一个类似的问题,但从未有人回答过,也从未澄清过。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

Azure DevOps - Github 状态检查

Azure DevOps - Github 状态检查

要使用 GitHub 状态检查, 首先,为存储库创建一个管道并至少构建一次,以便将其状态发布到 GitHub,从而让 GitHub 知道管道的名称。 接下来,按照 GitHub 的文档在存储库的设置中配置受保护的分支。 您可以遵循此文档:Protected branches 如果您想使用触发器设置,我们建议您将 yaml 更改为:

 - repository: repo1
    type: githubenterprise
    name: woohoo/repo1
    endpoint: myendpoint
    trigger:  
      branches:
        include:
         - test/*
    pr: 
     branches:
      include:
       - '*'  

FastGithub:github加速神器,解决github打不开、用户头像无法加载、releases无法上传下载等问题。

FastGithub:github加速神器,解决github打不开、用户头像无法加载、releases无法上传下载等问题。

FastGithub:github加速神器,解决github打不开、用户头像无法加载、releases无法上传下载、git-clone、git-pull、git-push失败等问题。

github加速神器,解决github打不开、用户头像无法加载、releases无法上传下载、git-clone、git-pull、git-push失败等问题。

之前尝试过手动修改host文件来解决网站的访问问题 以及更换网络但还是有时候无法如愿的访问GitHub

  • 相关说明:

    • fastgithub不具备“翻墙”功能,也没有相关的计划
    • fastgithub不支持Windows7等已被发行方停止支持的操作系统,并且也不会主动提供支持
    • fastgithub不能为您的游戏加速
    • fastgithub没有主动在github之外的任何渠道发布

1. 工作原理

从公共dns服务器拿到github的大量ip数据,检测哪些ip可用,哪些ip访问速度最佳,然后编写一个本地版的dns服务,当要解析github相关时,返回这个最佳ip。

  • 修改本机的 DNS 服务指向 FastGithub 自身
  • 解析匹配的域名为 FastGithub 自身的 IP
  • 请求安全 DNS 服务 (dnscrypt-proxy) 获取相应域名的 IP
  • 选择最优的 IP 进行 SSH 或 HTTPS 反向代理

2 部署方式

2.1 windows-x64桌面

win下使用最方便,解压后直接双击运行FastGithub.UI.exe即可,自带图形界面。

  • 双击运行FastGithub.UI.exe

解压下载的zip包, 将文件夹放到合适位置,找到FastGithub.UI.exe, 双击执行即可

2.2 windows-x64服务

1.在使用GitHub前需要打开并保证Fast GitHub在运行状态

2.在安装完成之后可以直接点开fastgithub的执行文件就可以运行程序,顺利连接到Github。

如果不能正常打开.exe的执行文件的话还是使用命令去启动

  • fastgithub.exe start // 以windows服务安装并启动
  • fastgithub.exe stop // 以windows服务卸载并删除

2.3 linux-x64终端

x64版是针对PC使用的,2.0.6版开始支持采用64位arm cpu的单片机,如树莓派,jetson nano等。解压缩后,进入目录运行已编译好的可执行文件fastgithub

  • sudo ./fastgithub
  • 设置系统自动代理为http://127.0.0.1:38457,或手动代理http/https为127.0.0.1:38457

2.4 linux-x64服务

  • sudo ./fastgithub start // 以systemd服务安装并启动
  • sudo ./fastgithub stop // 以systemd服务卸载并删除
  • 设置系统自动代理为http://127.0.0.1:38457,或手动代理http/https为127.0.0.1:38457

ubuntu系统只能识别crt格式的证书,而目前的代码里只有cer格式。其实他们都是纯文本格式,只是后缀的区别,可以直接重命名使用。

  • $ sudo cp cacert/fastgithub.cer /usr/local/share/ca-certificates/fastgithub.crt
  • $ sudo update-ca-certificates

2.5 macOS-x64

  • 双击运行fastgithub
  • 安装cacert/fastgithub.cer并设置信任
  • 设置系统自动代理为http://127.0.0.1:38457,或手动代理http/https为127.0.0.1:38457
  • 具体配置详情

2.6 docker-compose一键部署

  • 准备好docker 18.09, docker-compose.
  • 在源码目录下,有一个docker-compose.yaml 文件,专用于在实际项目中,临时使用github.com源码,而做的demo配置。
  • 根据自己的需要更新docker-compose.yaml中的sample和build镜像即可完成拉github.com源码加速,并基于源码做后续的操作。

3. 软件功能

  • 提供域名的纯净IP解析;
  • 提供IP测速并选择最快的IP;
  • 提供域名的tls连接自定义配置;
  • google的CDN资源替换,解决大量国外网站无法加载js和css的问题;

4 证书验证

4.1 git

git操作提示SSL certificate problem

需要关闭git的证书验证:git config --global http.sslverify false

4.2 firefox

firefox提示连接有潜在的安全问题

设置->隐私与安全->证书->查看证书->证书颁发机构,导入cacert/fastgithub.cer,勾选“信任由此证书颁发机构来标识网站”

5 安全性说明

FastGithub为每台不同的主机生成自颁发CA证书,保存在cacert文件夹下。客户端设备需要安装和无条件信任自颁发的CA证书,请不要将证书私钥泄露给他人,以免造成损失。

6 合法性说明

《国际联网暂行规定》第六条规定:“计算机信息网络直接进行国际联网,必须使用邮电部国家公用电信网提供的国际出入口信道。任何单位和个人不得自行建立或者使用其他信道进行国际联网。”
FastGithub本地代理使用的都是“公用电信网提供的国际出入口信道”,从国外Github服务器到国内用户电脑上FastGithub程序的流量,使用的是正常流量通道,其间未对流量进行任何额外加密(仅有网页原有的TLS加密,区别于VPN的流量加密),而FastGithub获取到网页数据之后发生的整个代理过程完全在国内,不再适用国际互联网相关之规定。

  • 参考链接

https://github.com/dotnetcore/FastGithub

安装GitHub上FastGithub的最新版本: https://github.com/dotnetcore/fastgithub/releases

  • 修复非windows平台启动后可能异常而停止的问题;
  • 修复windows平台拦截了非回环IP的Tcp80和443端口的问题;

更多优质内容请关注公号:汀丶人工智能;会提供一些相关的资源和优质文章,免费获取阅读。

Git / GitHub:将项目推送到 github 但保持挂起,什么也没有发生

Git / GitHub:将项目推送到 github 但保持挂起,什么也没有发生

如何解决Git / GitHub:将项目推送到 github 但保持挂起,什么也没有发生?

我目前正在学习如何使用 Git Bash 创建存储库并将其推送到 GitHub。

您将在下面看到我在 Git Bash 上的步骤。

在执行这些步骤之前,我已经在 Git 上设置了我的用户名和电子邮件地址。

我卡住的地方是从 GitHub 复制命令后 (''..

或从命令行推送现有存储库 git remote add origin https://github.com/userName/git_test.git git branch -M main git push -u origin main '')

在我从 GitHub 复制命令行后,没有任何反应......

光标一直点击很长时间,因为没有出现 $ 符号,在 Ctrl + C 大约 2000 万次之后,我可以编写一个命令来检查它是否有效(因此我在下面的第二步)

README.txt 文件非常小,所以我认为这不是问题。

有人对它为什么不起作用有什么建议吗?

这也是我的第二次尝试,我创建了另一个存储库 git_practice,我想取消它,但我的计算机不允许我,因为它说它在另一个程序上打开。

我已经用用户名替换了我的名字

// 第一步:我在 Git Bash 上的步骤:

username@LAPTOP-KCM8PO5E MINGW64 ~
$ pwd
/c/Users/username

username@LAPTOP-KCM8PO5E MINGW64 ~
$ mkdir git_test

username@LAPTOP-KCM8PO5E MINGW64 ~
$ cd git_test

username@LAPTOP-KCM8PO5E MINGW64 ~/git_test
$ git init
Initialized empty Git repository in C:/Users/username/git_test/.git/

username@LAPTOP-KCM8PO5E MINGW64 ~/git_test (master)
$ git add README.txt

username@LAPTOP-KCM8PO5E MINGW64 ~/git_test (master)
$ git commit -m "Add README.txt"
[master (root-commit) d3be350] Add README.txt
1 file changed,1 insertion(+)
create mode 100644 README.txt

username@LAPTOP-KCM8PO5E MINGW64 ~/git_test (master)
$ git log
commit d3be3501277fae8bf66dee882df3285ade5f7efa (HEAD -> master)
Author: User Name<username@gmail.com>
Date: Thu Jun 17 19:22:22 2021 +0100

Add README.txt

username@LAPTOP-KCM8PO5E MINGW64 ~/git_test (master)
$ git remote add origin https://github.com/userName/git_test.git
git push -u origin main

username@LAPTOP-KCM8PO5E MINGW64 ~/git_test (master)
$ git branch -M main

username@LAPTOP-KCM8PO5E MINGW64 ~/git_test (main)
$ git push -u origin main

// 第二个步骤:在我输入 Ctrl + C 后什么也没发生,显示如下:

username@LAPTOP-KCM8PO5E MINGW64 ~/git_test (main)
$ git push repo_url
fatal: ''repo_url'' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

username@LAPTOP-KCM8PO5E MINGW64 ~/git_test (main)
$

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

git 上传代码到GitHub 以及git删除github上文件和文件的命令

git 上传代码到GitHub 以及git删除github上文件和文件的命令

Git入门

如果你完全没有接触过Git,你现在只需要理解通过Git的语法(敲入一些命令)就可以将代码上传到远程的仓库或者下载到本地的仓库(服务器),可知我们此时应该有两个仓库,就是两个放代码的地方,一个是本地,一个是远程的(如Github)。企业或者团队可以通过Git来对项目进行管理,每个程序员只需将自己的本地仓库写好的代码上传到远程仓库,另一个程序员就可以下载到本地仓库了。今天我们就从Git终端软件的安装开始,再这之前我也简单介绍一下Github。

Git上传代码

一、准备工作

1、注册一个github账号。

2.下载windows上git终端,类似shell工具,下载地址:http://msysgit.github.io/

3、安装方法,打开文件,一路点击Next即可

4、安装完成。

        接下来就可以进入正题啦~

二、开始上传

1.登陆你的github,在github新建一个仓库,输入你的仓库名。

 

1.新建本地仓库:现在进入你想要上传到github上的的项目,右键选择文件夹会出现git GUI here和git Base here,前者选择指定文件夹用来创建本地仓库,后者用来进入git命令行

现在我们先选择git GUI here 创建我们的本地仓库。

2.绑定用户:现在进入项目的文件夹,右键选择git Base here,之后我们就进入git客户端的命令行啦,

因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识,用户和邮箱为你github注册的账号和邮箱

 

ps : git config  –global 参数,有了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然你也可以对某个仓库指定的不同的用户名和邮箱

 3.为Github账户设置SSH key(可忽略)

此处链接跳转:http://blog.csdn.net/hustpzb/article/details/8230454/

ps:其实第三步也可以跳过,对于初学者来说直接使用http上传就行,了解之后再去了解ssh加密上传,这里我就简单将降http上传,其实没什么太大区别,后面的步骤都一样

4.提交本地代码

输入$ git init开始创建啦

  1)、在本地仓库目录新建一个你要上传的文件,比如我上传的文件是readme.txt

 

2)、在命令行输入,将要上传的文件上传到本地仓库:

$ git add readme.txt

$ git commit -m 'readme.txt'

如图所示:

4)、关联远程仓库

这个链接就是github上新建仓库的链接

 

$ git remote add origin master https://github.com/starForlove/weixin-buycar

 3)、push代码到服务器上

经过上面已经把代码传到本地仓库了,接下来要做的很简单,只要把本地的代码传到服务器上就行了。

$ git push origin master 

接下来它会提示你输入用户名和密码,用户名就是你在github上注册的名字,密码就是你的登录密码

4)、现在你已经上传成功了,登陆你的github账户,就可以看到你上传的文件(readme.txt就是我上传的啦~)

 5)如果出现上传不成功,可能是因为你远程仓库已经存在文件,和你本地仓库文件不一致,或者你本地仓库的文件不是最新的,这个时候,你需要执行下面这行命令:

$ git pull origin master

将远程仓库的文件重新下载到本地仓库,然后再次执行

$ git push origin master 

三、删除远程仓库不想要的文件

ps:我们在上传项目后如果上传了你不想要的文件怎么办?很操蛋的在github上我们是不能直接删除仓库的文件,我们只能通过终端命令来删除我们不想要的文件或者目录

Git 如何删除远程服务器文件同时保留本地文件

在上传工程到git上时,有时候会把本地的一些eclipse配置文件传到服务器上,这时你先删除本地,再同步服务器,显然是不合理的。git提供了一个好的解决方法,可以直接删除服务器文件,同时不影响本地文件,命令如下

 

1.删除服务器文件,本地保留

 

此时github上已经不存在了

2.删除远程useless 文件夹,本地保留

一定要注意,删除文件夹要使用-r 参数

git rm --cached -r useless
git commit -m "remove directory from remote repository"
git push

 

关于git的使用就介绍到这里啦,学而时习之,确实是一个不错的学习方式,将自己学习过的东西通过博客整理出来真的大大加深了我的掌握程度。

 

今天关于Github 需要在合并前完成状态检查github 合并请求的介绍到此结束,谢谢您的阅读,有关Azure DevOps - Github 状态检查、FastGithub:github加速神器,解决github打不开、用户头像无法加载、releases无法上传下载等问题。、Git / GitHub:将项目推送到 github 但保持挂起,什么也没有发生、git 上传代码到GitHub 以及git删除github上文件和文件的命令等更多相关知识的信息可以在本站进行查询。

本文将介绍Oracle full EXPORT with exclude 不使用 par 文件的详细情况,特别是关于oracle12c不使用cdb模式的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于ES6_11_Module 的语法(import, export,export default )、Export failed for github.com/hashicorp/consul: Unable to export source: exit status 128、export to Excel from a list with EPPLUS、exports、module.exports和export、export default到底是咋回事的知识。

本文目录一览:

Oracle full EXPORT with exclude 不使用 par 文件(oracle12c不使用cdb模式)

Oracle full EXPORT with exclude 不使用 par 文件(oracle12c不使用cdb模式)

你可以试试这个脚本 expdp_powershell.ps1

例如

E:\upwork\stackoverflow\expdp_powershell>powershell ./expdp_powershell.ps1   -user_name system -user_password manager -connect_string test -exclude table:\"LIKE\'%_80\'\"

E:\upwork\stackoverflow\expdp_powershell>powershell  ./expdp_powershell.ps1

脚本 expdp_powershell.ps1

param(
[string]$user_name = "system",[string]$user_password = "manager",[string]$connect_string = "TEST",[string]$export_mode = "FULL=Y",[string]$exclude = "table:\""LIKE \'%_80\'\""" 
)

$date_time_log = Get-Date -Format "yyyyMMddHHmmss" 



$DUMPFILE = "backup" + $date_time_log + ".dmp"
$LOGFILE = "backup_log" + $date_time_log + ".log"
$reuse_dumpfiles = "yes"
$DIRECTORY="DATA_PUMP_DIR"

echo $exclude

EXPDP $user_name/$user_password@$connect_string $export_mode exclude=statistics exclude=$exclude DIRECTORY=$DIRECTORY DUMPFILE=$DUMPFILE LOGFILE=$LOGFILE reuse_dumpfiles=$reuse_dumpfiles

例如输出

E:\upwork\stackoverflow\expdp_powershell>powershell ./expdp_powershell.ps1   -user_name system -user_password manager -connect_string test -exclude table:\"LIKE\'%_80\'\"
table:\"LIKE \'%_80\'\"

Export: Release 11.2.0.4.0 - Production on Sat Jan 9 12:44:10 2021

Copyright (c) 1982,2011,Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning,OLAP,Data Mining and Real Application Testing options
Starting "SYSTEM"."SYS_EXPORT_FULL_01":  system/********@TEST FULL=Y exclude=statistics exclude=table:"LIKE \'%_80\'" DIRECTORY=DATA_PUMP_DIR DUMPFILE=backup20210109124410.dmp LOGFILE=ba
ckup_log20210109124410.log reuse_dumpfiles=yes
Estimate in progress using BLOCKS method...
Processing object type DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 363.1 MB
Processing object type DATABASE_EXPORT/TABLESPACE
Processing object type DATABASE_EXPORT/PROFILE
Processing object type DATABASE_EXPORT/SYS_USER/USER
Processing object type DATABASE_EXPORT/SCHEMA/USER
Processing object type DATABASE_EXPORT/ROLE
Processing object type DATABASE_EXPORT/GRANT/SYSTEM_GRANT/PROC_SYSTEM_GRANT
Processing object type DATABASE_EXPORT/SCHEMA/GRANT/SYSTEM_GRANT
Processing object type DATABASE_EXPORT/SCHEMA/ROLE_GRANT
Processing object type DATABASE_EXPORT/SCHEMA/DEFAULT_ROLE
Processing object type DATABASE_EXPORT/SCHEMA/TABLESPACE_QUOTA
Processing object type DATABASE_EXPORT/RESOURCE_COST
Processing object type DATABASE_EXPORT/TRUSTED_DB_LINK
Processing object type DATABASE_EXPORT/SCHEMA/SEQUENCE/SEQUENCE

ES6_11_Module 的语法(import, export,export default )

ES6_11_Module 的语法(import, export,export default )


点击前端自学社区查看更多精彩



本章将介绍学习 模块加载Module 的使用, 将一个大文件,分成多个小文件,像拼积木一样组合起来使用。


定义

Module将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来。
在 ES6 之前,模块加载方案,最主要的有 CommonJS 和 AMD 两种。前者用于服务器,后者用于浏览器。

// ES6模块
import { stat, exists, readFile } from ''fs'';

加载fs 模块得三个方法,其他方法不加载, 实现了模块的静态加载

export 命令

模块功能主要由两个命令构成:exportimportexport命令用于规定模块的对外接口,import命令用于输入其他模块提供的功能。

一个模块内部的成员想要被外部访问,就需要使用 export 导出

var firstName = ''Michael'';
var lastName = ''Jackson'';
var year = 1958;

export { firstName, lastName, year };

//注意
1.export输出的变量就是本来的名字,但是可以使用as关键字重命名。

function v1({ ... }
function v2({ ... }

export {
  v1 as streamV1,
  v2 as streamV2,
  v2 as streamLatestVersion
};

在导入的文件内,可以直接使用as 后的变量名 使用

export 导出 格式

//变量

var name  = ''张三''
var age = 22

export { name , age }


//函数
1. export function  getAge({}

2. function getAge({}     
导出 export {getAge}

// 类
var obj  = new Object()

export { obj}


//注意
export命令可以出现在模块的任何位置,只要处于模块顶层就可以。如果处于块级作用域内,就会报错,

function foo({
  export default ''bar'' // SyntaxError
}
foo()

import 命令

定义

使用export命令定义了模块的对外接口以后,其他 JS 文件就可以通过import命令加载这个模块。

/ main.js
import { firstName, lastName, year } from ''./profile.js'';

function setName(element{
  element.textContent = firstName + '' '' + lastName;
}



# 注意
1. import命令输入的变量都是只读的,因为它的本质是输入接口。不允许在加载模块的脚本里面,改写接口。

import {a} from ''./xxx.js''

a = {}; // Syntax Error : ''a'' is read-only;    


2.如果多次重复执行同一句import语句,那么只会执行一次,而不会执行多次。

模块的整体加载

除了指定加载某个输出值,还可以使用整体加载,即用星号(*)指定一个对象,所有输出值都加载在这个对象上面。

模块整体加载所在的那个对象,它是可以静态分析的,所以不允许运行时改变。

// circle.js

export function area(radius{
  return Math.PI * radius * radius;
}

export function circumference(radius{
  return 2 * Math.PI * radius;
}
import * as circle from ''./circle'';

console.log(''圆面积:'' + circle.area(4));
console.log(''圆周长:'' + circle.circumference(14));

export default 命令  指定默认输出

使用import命令的时候,用户需要知道所要加载的变量名或函数名,否则无法加载。
而使用 export default  命令, 用户不需要内部 的变量名 或者 函数名,可以直接导入使用

  1. 使用 import 命令。变量名 或者 函数 需要 放在  { }  里

    import { name ,  age }  from ''./test.js''

  2. 使用 export default 命令, 用户可以直接使用一个自定义的变量名直接使用该文件的中提供的方法或者变量/

    import  age as getAge  from ''./test.js''

    使用时,直接调用 getAge() , 上面代码 将 age 重命名为 getAge

注意
1.export default命令其实只是输出一个叫做default的变量,所以它后面不能跟变量声明语句。

// 正确
var a = 1;
export default a;

// 错误
export default var a = 1;

// 正确
export default 42;

// 报错
export 42;

2.export default也可以用来输出类。

// MyClass.js
export default class { ... }

// main.js
import MyClass from ''MyClass'';
let o = new MyClass();

export 与 import 的复合写法

如果在一个模块之中,先输入后输出同一个模块,import语句可以与export语句写在一起。

export { foo, bar } from ''my_module'';

// 可以简单理解为
import { foo, bar } from ''my_module'';
export { foo, bar };

跨模块常量,一个模块中的变量 / 方法 多个模块使用

可以这样写

// constants.js 模块
export const A = 1;
export const B = 3;
export const C = 4;

// test1.js 模块
import * as constants from ''./constants'';
console.log(constants.A); // 1
console.log(constants.B); // 3

// test2.js 模块
import {A, B} from ''./constants'';
console.log(A); // 1
console.log(B); // 3




往期精彩回顾

Android 基础入门干货分享 (UI控件篇)

十月份复盘总结

ES6_01_变量和常量的使用                                                                                                                                                                                     更多精彩内容 尽在公众号中




本文分享自微信公众号 - 前端自学社区(gh_ce69e7dba7b5)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

Export failed for github.com/hashicorp/consul: Unable to export source: exit status 128

Export failed for github.com/hashicorp/consul: Unable to export source: exit status 128

背景 

go项目,使用glide install命令去下载安装依赖,依赖中有个github.com/hashicorp/consul

 

问题描述

一直无法下载安装依赖成功,报错如下:

 

[ERROR] Export failed for github.com/hashicorp/consul: Unable to export source: exit status 128
[ERROR] Unable to export dependencies to vendor directory: Unable to export source: exit status 128

 

解决思路

先日了狗表达心情!

一顿google,发现提供的思路都差不多为:

 

glide cc

rm -rf vendor

尝试了无数次后都是失败了

在google的过程中,有的人建议贴出debug日志,无奈最后就自己加上了debug日志,得到了如下

 

具体日志

 

[ERROR] Export failed for github.com/hashicorp/consul: Unable to export source: exit status 128

[DEBUG] Output was: error: unable to create file C:\\\Users\\\M\\\AppData\\\Local\\\Temp\\\glide-vendor249536483\\\vendor\\\github.com\\\hashicorp\\\consul\\\vendor/github.com/hashicorp/go-discover/provider/azure/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2015-06-15/network/expressroutecircuitauthorizations.go: Filename too long[DEBUG]

Unlocking https-github.com-hashicorp-consul

[ERROR] Unable to export dependencies to vendor directory: Unable to export source: exit status 128

[DEBUG] Output was: error: unable to create file C:\\\Users\\\M\\\AppData\\\Local\\\Temp\\\glide-vendor249536483\\\vendor\\\github.com\\\hashicorp\\\consul\\\vendor/github.com/hashicorp/go-discover/provider/azure/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2015-06-15/network/expressroutecircuitauthorizations.go: Filename too long

日了狗,看描述大概明白了,glide在执行新建文件的时候发现文件名过长了!!!

 

解决办法

那么问题就演变成了glide error filename too long的问题了

具体方法:

 

Enable long paths on Windows (requires Windows 10 Anniversary Update or newer): https://superuser.com/a/1119980/97078

Configure git to use long paths: git config --global core.longpaths true (globally) or git config core.longpaths true (per project)

我执行了第二步就解决了问题,那么大概就是glide 会去使用git去拉取代码和创建文件了的 

 

小结

还是问题的官方日志靠谱,遇到问题先获取更多的日志吧

 

 

export to Excel from a list with EPPLUS

export to Excel from a list with EPPLUS

i´m trying to export a list to Excel in c# with EPPLUS, when i execute the
program don´t give me errors, but when i open the Excel i see that are not the
correct data, he put the name of the projet+the name of the object as many
times as objects have the list: enter image descriptionhere

The code of the object:

class Stock        {            public string Nif;            public string Proveedor;            public string Coodigo;            public string descripcion;            public string Catalogo;            public string Estadistico;            public decimal StockOn;        }

and when thes list(lstStock) is filled i create an Excel and use the option
loadfromcollection :

        System.IO.FileInfo f = new System.IO.FileInfo("D:\\stock_termos.xlsx");            if (f.Exists) f.Delete();            using (ExcelPackage ep = new ExcelPackage(f))            {                   ExcelWorksheet hoja = ep.Workbook.Worksheets.Add("TOTAL OBSOLETOS");                hoja.Cells[1, 1].Value = "NIF"; ;                hoja.Cells[1, 2].Value = "Proveedor";                hoja.Cells[1, 3].Value = "Código";                hoja.Cells[1, 4].Value = "Descripción";                hoja.Cells[1, 5].Value = "Catálogo";                hoja.Cells[1, 6].Value = "Cod.Estadístico";                hoja.Cells[1, 7].Value = "Stock On";                hoja.Cells[2, 1].LoadFromCollection(lstStock);            }

The cuestión is that when i debug the aplication in VisualStudio i can see the
list is correctly filled:

enter image descriptionhere

So i think the error is when i try to export the data to Excel, with the
LoadFromCollection method, but i can´t se what is wrong, please help.

答案1

小编典典

What version of EPPlus are you using? I ask because I am surprised it does not
throw an error as it does with 4.1.0 which is currently the latest. Maybe an
older version is more forgiving.

But to answer you question, if you look at the signature of the final overload
of LoadFromCollection that is eventually called you will see this:

public ExcelRangeBase LoadFromCollection<T>(IEnumerable<T> Collection, bool PrintHeaders, TableStyles TableStyle, BindingFlags memberFlags, MemberInfo[] Members)

Notice that Epplus is only looking at MemberInfos and not a Fields which
is what you object is using. If you change Stock object to this:

class Stock{    public string Nif { get; set; }    public string Proveedor { get; set; }    public string Coodigo { get; set; }    public string descripcion { get; set; }    public string Catalogo { get; set; }    public string Estadistico { get; set; }    public decimal StockOn { get; set; }}

You should see results.

exports、module.exports和export、export default到底是咋回事

exports、module.exports和export、export default到底是咋回事

1、使用范围

require: node 和 es6 都支持的引入
export / import : 只有es6 支持的导出引入
module.exports / exports: 只有 node 支持的导出

2、node模块

 
Node里面的模块系统遵循的是CommonJS规范。
那问题又来了,什么是CommonJS规范呢?
由于js以前比较混乱,各写各的代码,没有一个模块的概念,而这个规范出来其实就是对模块的一个定义。

CommonJS定义的模块分为: 模块标识(module)、模块定义(exports) 、模块引用(require)
  先解释 exports 和 module.exports
  在一个node执行一个文件时,会给这个文件内生成一个 exports和module对象,
  而module又有一个exports属性。他们之间的关系如下图,都指向一块{}内存区域。
exports = module.exports = {};
exports --> 内存: {} <-- module.exports
//utils.js
    let a = 100;

    console.log(module.exports); //能打印出结果为:{}
    console.log(exports); //能打印出结果为:{}

    exports.a = 200; //这里辛苦劳作帮 module.exports 的内容给改成 {a : 200}

    exports = ''指向其他内存区''; //这里把exports的指向指走

    //test.js

    var a = require(''/utils'');
    console.log(a) // 打印为 {a : 200} 

从上面可以看出,其实require导出的内容是module.exports的指向的内存块内容,并不是exports的。
简而言之,区分他们之间的区别就是 exports 只是 module.exports的引用,辅助后者添加内容用的。
用白话讲就是,exports只辅助module.exports操作内存中的数据,辛辛苦苦各种操作数据完,累得要死,结果到最后真正被require出去的内容还是module.exports的
其实大家用内存块的概念去理解,就会很清楚了。
然后呢,为了避免糊涂,尽量都用 module.exports 导出,然后用require导入。

 

3、ES中的模块导出导入

说实话,在es中的模块,就非常清晰了。不过也有一些细节的东西需要搞清楚。
比如 export 和 export default,还有 导入的时候,import a from ..,import {a} from ..,总之也有点乱,那么下面我们就开始把它们捋清楚吧。

export 和 export default:
1、export 和 export default 均可以用于导出常量、函数、文件、模块等
2、在一个文件或模块中,export、import 可以有多个,export default 仅有一个
3、通过 export 方式导出,在导入时要加 {},export default 则不需要
4、export 能直接导出变量表达式,export default 不行

  testEs6Export.js 代码:
    ''use strict''
    //导出变量
    export const a = ''100'';  

     //导出方法
    export const dogSay = function(){ 
        console.log(''wang wang'');
    }

     //导出方法第二种
    function catSay(){
       console.log(''miao miao''); 
    }
    export { catSay };

    //export default导出
    const m = 100;
    export default m; 
    //export defult const m = 100;// 这里不能写这种格式。

  index.js 代码:
    //index.js
    ''use strict''
    var express = require(''express'');
    var router = express.Router();
    
    import { dogSay, catSay } from ''./testEs6Export''; //导出了 export 方法 
    import m from ''./testEs6Export'';  //导出了 export default 
    
    import * as testModule from ''./testEs6Export''; //as 集合成对象导出
    
    
    
    /* GET home page. */
    router.get(''/'', function(req, res, next) {
      dogSay();
      catSay();
      console.log(m);
      testModule.dogSay();
      console.log(testModule.m); // undefined , 因为  as 导出是 把 零散的 export 聚集在一起作为一个对象,而export default 是导出为 default属性。
      console.log(testModule.default); // 100
      res.send(''恭喜你,成功验证'');
    });
    
    module.exports = router;

 

今天的关于Oracle full EXPORT with exclude 不使用 par 文件oracle12c不使用cdb模式的分享已经结束,谢谢您的关注,如果想了解更多关于ES6_11_Module 的语法(import, export,export default )、Export failed for github.com/hashicorp/consul: Unable to export source: exit status 128、export to Excel from a list with EPPLUS、exports、module.exports和export、export default到底是咋回事的相关知识,请在本站进行查询。

本文标签:

上一篇我正在使用 mongoose populate 从 2 个文档中的 mongodb 中获取数据,但结果没有来自引用文档的数据

下一篇eslintcache 自动上传到github,如何防止?(eslint import)